c – 警告:变量集但未使用[-Wunused-but-set-variable]

前端之家收集整理的这篇文章主要介绍了c – 警告:变量集但未使用[-Wunused-but-set-variable]前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 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块合并为一个).

猜你在找的C&C++相关文章