小编典典

错误:使用&&运算符时已使用但未定义的标签[关闭]

linux

int main()
{
int i = 0;
int p = &i;
int
q = &&i;
return 0;
}

使用gccon 编译Linux时,出现错误

addr.c: In function ‘main’:
addr.c:6:2: error: label ‘i’ used but not defined

为什么编译器将int ias视为label而不是整数?我们什么时候使用&& operator

编辑 :好的,我有点理解答案,但是您可以从“ arch / arm / include / asm /
processor.h”解释下面的宏定义。它没有说任何有关的内容label,但评论说,它可以返回“ program counter

/*
 * Default implementation of macro that returns current
 * instruction pointer ("program counter").
 */
#define current_text_addr() ({ __label__ _l; _l: &&_l;})

阅读 297

收藏
2020-06-07

共1个答案

小编典典

什么&&运算符?C
++中没有一元&&运算符。GCC有一个扩展名,它允许计算出的goto语句,并且该扩展名使用&&来获取标签的地址。

2020-06-07