我有一个结构有两个字段结构本身.我想使用初始化列表来分配内部结构的字段,而不必手动分配每个单个字段.
struct point
{
int x;
int y;
};
struct rectangle
{
struct point p1;
struct point p2;
};
struct rectangle r2;
r2.p1 = {5, 6};
r2.p2 = {7, 20};
Run Code Online (Sandbox Code Playgroud)
但是这段代码不会编译:
structs3.c:105:11: error: expected expression before ‘{’ token
r2.p1 = {5, 6};
^
structs3.c:106:11: error: expected expression before ‘{’ token
r2.p2 = {7, 20};
^
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?是什么原因?
你可以在定义r2时这样做
struct rectangle r2 = {
{5, 6},
{7, 20}
};
Run Code Online (Sandbox Code Playgroud)
或使用复合文字作为
r2.p1 = (struct point){5, 6};
r2.p2 = (struct point){7, 20};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |