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