我使用VSCODE作为代码编辑器,使用Microsoft的C/C++扩展作为代码编辑器,以便拥有比我的游戏引擎提供的代码编辑器更现代的代码编辑器(2000年代初的代码编辑器)。所以我只是使用vscode来编程,而不是用它编译我的代码。
问题是,扩展将正确的语句标记为不正确的语句:在我的例子中,对于简单的语句,我得到了错误的提示: sizeof(int) Intellisense说:“表达式期望C/C++ (29)”。

你们谁知道是怎么回事?

提前谢谢。
我已经尝试过将Intellisense模式从msvc-x64 (旧式)更改为其他模式,但问题仍然存在。
发布于 2022-04-10 05:28:32
sizeof如果是一个内置关键字,它永远不应该被重新定义为一个宏.宏被扩展为一个函数(我相信_sizeof是一个函数)。宏扩展看起来如下所示:
(int)_sizeof(int);您所得到的错误来自于通过的参数。宏在函数调用(_sizeof(int))中传递一个裸数据类型,而实际上函数调用中的函数参数必须始终是表达式。这就是为什么您得到了错误“预期的一个表达式”。
一个解决方案可以是放置一些类似于以下代码(在代码的开头):
#ifdef sizeof
#undef sizeof
#endif如果你有什么问题请告诉我。
https://stackoverflow.com/questions/71717163
复制相似问题