я следующий код:Как определить размер структуры в C
#include<stdio.h>
typedef struct _node_1
{
int number;
int scores;
int xyz;
double p;
} Node_1;
typedef struct _node_2
{
int number;
int scores;
int xyz;
struct _node_2 *p;
} Node_2;
typedef struct _node_3
{
int number;
int scores;
int xyz;
struct _node_2 p;
} Node_3;
int main()
{
printf("%d\n",sizeof(Node_1));
printf("%d\n",sizeof(Node_2));
printf("%d",sizeof(Node_3));
return 0;
}
и выход:
24
24
40
Мой вопрос, почему результат выводит эти 3 примера являются как это и как мы точно определяем размер структуры? BTW, моя операционная система - 64-разрядная. Спасибо!
и обратите внимание, что размеры должны быть напечатаны с использованием ['% zu'] (http://stackoverflow.com/q/940087/995714) –