【发布时间】:2015-04-13 04:07:51
【问题描述】:
我正在尝试使用新的 C99 初始化语法来初始化结构。但是,每当我编译这样设置的代码时,我都会从 GCC 4.9.2 收到编译错误“'{' token 之前的预期表达式”:
// *.h file
typedef struct
{
int x;
int y;
} SPoint;
typedef struct
{
SDL_Window* window;
SPoint position;
} SWindow;
// *.c file
SWindow* create(int x, int y) {
SWindow* window = malloc(sizeof(SWindow));
// snip
(*window) = { .window = sdlWindow,
.position = { .x = x,
.y = y }};
// snip
如果我在初始化程序前面添加一个“(SWindow)”,它编译得很好。除了一些语法上的丑陋(如果你对此有一些建议,我会很感激),我看不出我缺少什么。
我做错了什么?
【问题讨论】: