tor*_*gen 2 c syntax types pointers dereference
我有以下结构:
typedef struct _foo_t {
int bar;
float buzz;
char quux[40];
} *const foo_t;
Run Code Online (Sandbox Code Playgroud)
有没有办法获得结构的大小,就像通过它完成sizeof(struct _foo_t)
,但只使用名称foo_t
?我试过了sizeof(*foo_t)
,但那不编译.
我不相信你可以直接这样做.如果要执行此操作,则需要定义中间typedef:
typedef struct _foo_t {
int bar;
float buzz;
char quux[40];
} foo_t;
typedef foo_t *const foo_tp;
// sizeof(foo_t) should work
Run Code Online (Sandbox Code Playgroud)
在C中取消引用类型并不真正有意义.您可以取消引用变量,但不能取消引用类型.在C++中,您可以使用模板执行这些类型的操作,但由于您指定了C标记,因此不适用.
您还可以声明一个适当类型的虚拟变量来调用sizeof
表达式:
foo_tp f;
// sizeof(*f) should work
Run Code Online (Sandbox Code Playgroud)