Код: Выделить всё
struct st1
{
char name[12];
int heartbeat ;
double price ;
int iFlag ;
} ;
struct st2 {
struct st1 ;
char pad[64 - sizeof(struct st1)] ;
} __attribute__((aligned(64))) ;
int main (void)
{
printf("length of struct st2=(%d)\n",sizeof(struct st2) ) ;
}
gcc -fms-extensions test1.c -o test1.exe
./test1.exe ===> length of struct st2=(64)
Код: Выделить всё
g++ -fms-extensions test1.cpp -o test1.exe
test1.cpp:23: ошибка: неверное применение sizeof к неполному типу st2::st1
Я знаю, что эта ошибка показывает charpad[64 - sizeof(struct st1)] ; не работает в g++,
хотя работает в gcc, если мне нравится, что это работает в g++, что я могу сделать?
Подробнее здесь: https://stackoverflow.com/questions/157 ... ailed-in-c