我刚刚在 Bash 的源代码中看到了这个:
/* Force gcc to not clobber X on a longjmp(). Old versions of gcc mangle
this badly. */
#if .......
# define USE_VAR(x) ((void) &(x))
.....
我的问题是 ((void) &(x))
解析到什么?它在 Bash 的 main
中使用如下:
.....
USE_VAR(argc);
USE_VAR(argv);
USE_VAR(env);
......
最佳答案
它获取x
的地址,然后将其转换为void
。结果是——什么都没有。
但是编译器可能认为当一个变量的地址被占用时,它就被“使用”了。
关于c - 这解析为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42263021/