typedef 指针的大小
sizeof typedef pointer
我有一个这样定义的结构:
typedef struct my_struct
{
int numbers[10];
}
*my_struct;
有没有办法找出它的大小?
sizeof(my_struct);// return size of a pointer
结构类型本身拼写为struct
,所以你可以说:
sizeof (struct my_struct)
如果你没有给你的结构命名,这将无法工作,这本来是可能的:
typedef struct { int numbers[10]; } * foo; /* struct type has no name */
foo p = malloc(1000);
p->numbers[3] = 81;
我想说所有这些都是无缘无故不必要的简洁代码。就此而言,我只会保持所有名称的唯一性,并为所有内容命名,而不是别名指针。例如:
typedef struct my_struct_s my_struct;
my_struct * create_my_struct(void);
void destroy_my_struct(my_struct * p);
struct my_struct_s
{
int numbers[10];
};
一切都有唯一的名称,typedef 与结构定义是分开的,指针是显式的。
我有一个这样定义的结构:
typedef struct my_struct
{
int numbers[10];
}
*my_struct;
有没有办法找出它的大小?
sizeof(my_struct);// return size of a pointer
结构类型本身拼写为struct
,所以你可以说:
sizeof (struct my_struct)
如果你没有给你的结构命名,这将无法工作,这本来是可能的:
typedef struct { int numbers[10]; } * foo; /* struct type has no name */
foo p = malloc(1000);
p->numbers[3] = 81;
我想说所有这些都是无缘无故不必要的简洁代码。就此而言,我只会保持所有名称的唯一性,并为所有内容命名,而不是别名指针。例如:
typedef struct my_struct_s my_struct;
my_struct * create_my_struct(void);
void destroy_my_struct(my_struct * p);
struct my_struct_s
{
int numbers[10];
};
一切都有唯一的名称,typedef 与结构定义是分开的,指针是显式的。