ниже приведен пример кода для расширения атрибута переменной GCC,
#include<stdio.h>
int main(void){
int sam __attribute__((unused))= 10;
int p = sam+1;
printf("\n%d" , p);
}
для кода сборки вышеуказанной программы, сгенерированного с использованием:
gcc -S sample.c
.s файл не содержитпеременная sam в нем, в то время как вывод программы равен «11», что правильно.Так что компилятор полностью игнорирует неиспользуемую переменную и не выводит ее в исполняемый файл?Если да, то почему вывод программы корректен? Может кто-нибудь объяснить работу неиспользуемых и используемых атрибутов переменных в gcc.
Спасибо