Вот мой код:
#include <stdio.h>
int variable;
int main(){
printf("%p", &variable);
}
Вывод за пару прогонов:
~ % ./a.out
0x559bae5c4030
~ % ./a.out
0x55b9d1038030
~ %
как видите, в конце обоих адресов есть 30. и таблица символов:
~ % readelf -s a.out | grep variable
Num: Value Size Type Bind Vis Ndx Name
51: 0000000000004030 4 OBJECT GLOBAL DEFAULT 23 variable
~ %
снова есть эти 30 в конце поля Value. Мой вопрос: что это за поле value и какое отношение оно имеет к выводу кода? и почему последние две цифры сохраняются при каждом прогоне?
извините за мой плохой английский