rom*_*nux 1 c struct pointers declaration
我寻找一种方法来初始化一个结构并在一行中返回这个结构指针。(便携式方式是最好的,但至少对于 gcc)
例如,我得到了一个函数:
void myfunc(const mystruct_t *ptr);
Run Code Online (Sandbox Code Playgroud)
一个结构定义:
typedef struct mystruct_t{
int field1;
const char *field2;
}mystruct_t;
Run Code Online (Sandbox Code Playgroud)
我可以 :
const mystruct_t mystruct={.field1=23, .field2="myname" };
myfunc(&mystruct);
Run Code Online (Sandbox Code Playgroud)
我有办法在一行中做到这一点吗?
就像是 :
myfunc(&{.field1=23, .field2="myname" });
Run Code Online (Sandbox Code Playgroud)
您可以使用自 C99 起支持的复合文字。
myfunc(&(mystruct_t){.field1=23, .field2="myname" });
Run Code Online (Sandbox Code Playgroud)