Сегодня я получил некоторую информацию, которую мы можем получить смещение поля в структуре таким образом:Почему мы можем получить смещение такой структуры?
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
struct sdshdr {
int len;
int free;
};
int main(int argc, char* argv[])
{
printf("%d\n", &sdshdr::len);
printf("%d\n", &sdshdr::free);
}
Хотя я получил предупреждение во время компиляции, он может успешно работать. Как мы можем это объяснить? Я не получал информацию, когда искал в Интернете. Может ли кто-нибудь помочь объяснить, что здесь произошло?
аргументы компиляции: gcc -g -O2 -Wall -o main.o main.cpp
С каким флагом компилятора и какой компилятор вы строите эту программу? – Evert
Nope, error: expected ')' before ':' token http://codepad.org/ZsNJY08g – duDE
gcc -g -O2 -Wall -o main.o main.cpp – meeme