我正在阅读基准测试实用程序的源代码,我在其中看到:
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类型的好处/效果是什么?
这似乎是荒谬的。
答案 0 :(得分:3)
这是非常荒谬的。 (可疑的)好处是防止未使用的变量警告。这引出了一个问题,为什么变量首先被声明?
答案 1 :(得分:0)
这是一种减少未使用的变量警告的老式方法。我相信如果它在当前编译目标的外部,它也可能会强制关联。正确的方法是将它标记为未使用的编译器喜欢的任何方式(并且可能基于autotools或其他东西设置)。