C ++声明后将int转换为void类型?

时间:2015-10-20 21:45:18

标签: c++ casting

我正在阅读基准测试实用程序的源代码,我在其中看到:

int i, j, ret; (void)j; (void)ret;

 if (!_does_file_exist(str)) {
    sprintf(cmd, "mkdir -p %s > errorlog.txt", str); 
    ret = system(cmd);  // Execute a command on the system
    (void)ret;
  }

将整数声明并转换为void类型的好处/效果是什么?

这似乎是荒谬的。

2 个答案:

答案 0 :(得分:3)

这是非常荒谬的。 (可疑的)好处是防止未使用的变量警告。这引出了一个问题,为什么变量首先被声明?

答案 1 :(得分:0)

这是一种减少未使用的变量警告的老式方法。我相信如果它在当前编译目标的外部,它也可能会强制关联。正确的方法是将它标记为未使用的编译器喜欢的任何方式(并且可能基于autotools或其他东西设置)。