我在
gcc 4.6.1中编译C源代码时遇到了警告.
warning: variable set but not used [-Wunused-but-set-variable]
我参考了这个链接Wunused,但是可以得到正是导致这个警告的原因.有谁能告诉我更多细节是什么导致了这个警告,我们怎么能摆脱它?
[编辑]
我有一小段代码.编译显示上述警告.你能建议我怎么纠正它?
test_function(){ BOOL BoolTest; BoolTest = test_fucntion2(); #ifdef CHECK if (!BoolTest) { misc_StartErrorReport(); misc_ErrorReport("\n test_function2: Input not indexed.\n"); misc_FinishErrorReport(); } #endif // BoolTest is no more used below it. // }
解决方法
您需要在BoolTest的声明和初始化周围包含预处理器保护:
test_function() { #ifdef CHECK BOOL BoolTest = test_function2(); #else test_function2(); #endif #ifdef CHECK if (!BoolTest) { misc_StartErrorReport(); misc_ErrorReport("\n test_function2: Input not indexed.\n"); misc_FinishErrorReport(); } #endif
(假设您仍然想要调用test_function2(),即使未定义CHECK,可能是因为它的副作用 – 如果没有,那么您不需要#else部分,您可以将两个#ifdef块合并为一个).