我有一个较旧的c项目,它使用许多变量名,导致它无法在c ++, new
, this
等中编译。
所以,试着看看我是否可以编译,我已经这样做了:
TEST.C:
#include "Test.h" int test() { int new = 123; return new; }
但它仍然抱怨new
,所以它不是纯粹的C编译。我错过了什么?
编辑
我知道new
, this
等是c++
中的保留名称。 但我正在尝试将其编译为c
而我正试图避免在一个大型项目中重命名。 如果我告诉它编译为c
,为什么它仍然强制执行这些保留名称?
看到答案:
还有一些额外的标志可以禁用可能适用的Microsoft扩展。
我知道它没有回答这个问题,但是您可能会发现更改变量名称的工作量更少,搜索和替换名为“this”和“new”的变量只需要5分钟。
new
是用于分配内存的保留标识符
int* i = new int(123);
你不能使用它。 切换到变量的另一个名称,例如
#include "Test.h" int test() { int i = 123; return i; }
C ++的保留字可以方便地放在几个组中。 在第一组中,我们将那些同样存在于C编程语言中的内容放到了C ++中。 其中有32个,这里是:
auto const double float int short struct unsigned break continue else for long signed switch void case default enum goto register sizeof typedef volatile char do extern if return static union while
还有另外30个保留字不在C中,因此对C ++来说是新手,这里它们是:
asm dynamic_cast namespace reinterpret_cast try bool explicit new static_cast typeid catch false operator template typename class friend private this using const_cast inline public throw virtual delete mutable protected true wchar_t
取自这里 。
您没有将C源代码编译为C代码,您需要将代码迁移到C ++,这涉及替换变量名称,这些变量在c ++中用作关键字。
以上就是c/c++开发分享无法在visual studio 2012中编译C.相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/523017.html