Erro: Rótulo usado mas não definido ao usar o && operator [closed]
int main()
{
int i = 0;
int *p = &i;
int *q = &&i;
return 0;
}
Ao compilar isso usandogcc
emLinux
, Estou recebendo o erro
addr.c: In function ‘main’:
addr.c:6:2: error: label ‘i’ used but not defined
Por que o compilador está tratandoint i
Comolabel
e não inteiro? Quando usamos&& operator
?
EDITAR: Ok, eu posso entender um pouco as respostas, mas você pode explicar a definição de macro abaixo de "arch / arm / include / asm / processor.h". Não diz nada sobrelabel
, mas o comentário diz, pode retornar o "program counter
"
/*
* Default implementation of macro that returns current
* instruction pointer ("program counter").
*/
#define current_text_addr() ({ __label__ _l; _l: &&_l;})