我有以下代码:
void fn(){
struct{
int a;
int b;
} s1, s2;
s1.a = 1;
s1.b = 2;
s2.a = 1 << s1.a;
s2.b = 1 << s2.b;
}
Run Code Online (Sandbox Code Playgroud)
我尝试过以某种方式使变量保持不变,但是在尝试以这种方式执行此操作时出现了一堆编译器错误:
void fn(){
const struct{
int a;
int b;
} s1{.a = 1, .b = 2}, s2{.a = 1 << s1.a, .b = 1 << s1.b};
}
Run Code Online (Sandbox Code Playgroud)
main.c:7:10: error: expected ';' at end of declaration
} s1{.a = 1, .b = 2}, s2{.a = 1 << s1.a, .b = 1 << s1.b}; …Run Code Online (Sandbox Code Playgroud)