3

在 OpenSL ES 的 android 实现中,可以在 android-ndk /samples/native-audio/jni/native-audio-jni.c 中找到以下示例代码

SLresult result;
result = slCreateEngine(&engineObject, 0, NULL, 0, NULL, NULL);
assert(SL_RESULT_SUCCESS == result);
(void)result;

SLResult被定义为 type ,根据SLuint32定义,它是 32 位无符号整数类型。

我的问题是:这条线(void)result;有什么作用?我认为这无济于事,编译器可以优化它。但是,示例中的许多地方都出现了类似的行,我想知道它到底是否具有某种重要性。

4

1 回答 1

7

有时会插入这种愚蠢的代码以使编译器或 lint 警告静音,例如关闭断言检查时“未使用变量结果”。

我没有编写代码,所以我不能确定,但​​这是我的猜测。

于 2013-10-18T13:40:57.417 回答