在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
被定义为类型SLuint32
,根据定义,它是32位无符号整数类型。
我的问题是:(void)result;
行有什么作用?我认为这样做什么都没有,编译器可以优化它。但是,在示例中的许多地方出现了类似的行,我想知道它是否具有一定的重要性。
答案 0 :(得分:7)
有时会插入那种愚蠢的代码来使编译器或lint警告静音,例如在关闭断言检查时“不使用变量结果”。
我没有编写代码,所以我无法确定,但这是我的猜测。