int main() { int i = 0; int p = &i; int q = &&i; return 0; }
使用gccon 编译Linux时,出现错误
gcc
Linux
addr.c: In function ‘main’: addr.c:6:2: error: label ‘i’ used but not defined
为什么编译器将int ias视为label而不是整数?我们什么时候使用&& operator?
int i
label
&& operator
编辑 :好的,我有点理解答案,但是您可以从“ arch / arm / include / asm / processor.h”解释下面的宏定义。它没有说任何有关的内容label,但评论说,它可以返回“ program counter”
program counter
/* * Default implementation of macro that returns current * instruction pointer ("program counter"). */ #define current_text_addr() ({ __label__ _l; _l: &&_l;})
什么&&运算符?C ++中没有一元&&运算符。GCC有一个扩展名,它允许计算出的goto语句,并且该扩展名使用&&来获取标签的地址。