Ошибка: метка используется, но не определена при использовании оператора && [закрыто]
int main()
{
int i = 0;
int *p = &i;
int *q = &&i;
return 0;
}
При компиляции с помощьюgcc
наLinux
Я получаю ошибку
addr.c: In function ‘main’:
addr.c:6:2: error: label ‘i’ used but not defined
Почему лечит компиляторint i
какlabel
а не целое число? Когда мы используем?&& operator
РЕДАКТИРОВАТЬХорошо, я могу немного понять ответы, но не могли бы вы объяснить приведенное ниже определение макроса изарка / рука / включить / ассемблера / processor.h», Это неговорит что-нибудь оlabel
, но комментарий говорит, что он может вернуть ""program counter
/*
* Default implementation of macro that returns current
* instruction pointer ("program counter").
*/
#define current_text_addr() ({ __label__ _l; _l: &&_l;})