SDL_Rect 带有无效值的声明

SDL_Rect declaration with values not working

我正在研究包含以下内容的代码:

...
SDL_Rect rect(0, 0, 100, 50);
...

但是当我这样做时,出现以下错误:

error: expected declaration specifiers or ‘...’ before numeric constant
   49 |   SDL_Rect rect(0, 0, 100, 50);

谁能告诉我为什么?

如果你编译为 C,这是无效的。 C 中没有构造函数。编译器将您的代码的第一部分解释为前向声明,而后半部分将其混淆。

就这样定义SDL_Rect

SDL_Rect rect;

rect.x = 0;
rect.y = 0;
rect.w = 100;
rect.h = 50;

这是 libsdl 参考: https://wiki.libsdl.org/SDL_Rect

尽管由于您正在研究代码,您可能只想将其编译为 C++,因为它看起来就是用它编写的。