这是什么解析?

问题描述:

我刚才看到这个在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。结果是 - 什么都没有。

但是,编译器可能会认为,当一个变量的地址被采用时,它被“使用”了。