Tom*_*m's 1 c struct initialization
鉴于此结构:
typedef struct test {
char field1[20];
char *field2;
} test_s
Run Code Online (Sandbox Code Playgroud)
如何使用指定的初始化程序初始化这种结构,知道我希望field2指向field1?
test_s test = {.field1[0] = '\0', .field2 = .field1};
Run Code Online (Sandbox Code Playgroud)
不起作用.
如果是单项声明,您可以使用声明的变量的名称,因为编译器可以在初始化期间随时获取地址:
test_s test = {.field1[0] = '\0', .field2 = test.field1};
Run Code Online (Sandbox Code Playgroud)