在VS2010下编写C应注意的问题(和编写C++的区别)
来源:互联网 发布:java如何导入jar包 编辑:程序博客网 时间:2024/05/17 01:57
用VS2010来编译C程序,在网上看到说在属性→C/C++→高级 对话框里面更改编译为:C代码(/TC)就可以进行C语言源码编译工作了,但是有时候不修改这个选项也不影响使用C来编译,那到底需不需要修改呢?
【C代码(/TC)和C++代码(/TP)有何区别?】
MSDN:
/Tc 选项指定 filename 为 C 源文件,即使它没有 .c 扩展名。/Tp 选项指定 filename 为 C++ 源文件,即使它没有 .cpp 或 .cxx 扩展名。选项和 filename 之间的空格是可选的。每个选项指定一个文件;若要指定其他文件,请重复此选项。
/TC 和 /TP 是 /Tc 和 /Tp 的全局变量。它们指定编译器将在命令行上命名的所有文件视为 C 源文件 (/TC) 或 C++ 源文件 (/TP),而不考虑它们在命令行上相对于选项的位置。这些全局选项可通过 /Tc 或 /Tp 在单个文件上重写。
/Tcfilename
/Tpfilename
/TC
/TP
参数
filename
C 或 C++ 源文件。
备注
默认情况下,CL 假定扩展名为 .c 的文件是 C 源文件,扩展名为 .cpp 或 .cxx 的文件是 C++ 源文件。
在 Visual Studio 开发环境中设置此编译器选项
打开此项目的“属性页”对话框。有关详细信息,请参见如何:打开项目属性页。
单击“C/C++”文件夹。
单击“高级”属性页。
修改“编译为”属性。
以编程方式设置此编译器选项
请参见 CompileAs。
示例
下列 CL 命令行指定 MAIN.c、TEST.prg 和 COLLATE.prg 都是 C 源文件。CL 将不识别 PRINT.prg。
复制代码
CL MAIN.C /TcTEST.PRG /TcCOLLATE.PRG PRINT.PRG
下列 CL 命令行指定 TEST1.c、TEST2.cxx、TEST3.huh 和 TEST4.o 作为 C++ 文件编译,TEST5.z 作为 C 文件编译。
复制代码
CL TEST1.C TEST2.CXX TEST3.HUH TEST4.O /Tc TEST5.Z /TP
请参见
参考
编译器选项
设置编译器选项
C语言和C++语言是两种不同的语言,不过C++兼容了大多C的语言特性这个设置决定了编译器按照哪个语言规则来进行编译,如果不涉及两种语言中存在差异的语法那么用哪个编译器都是一样的
编译器把.c文件当作C程序编译,把.cpp文件当作C++编译,即IDE中是根据文件后缀自动选择用C/C++编译器编译
由于C和C++在语法以及编译的一些细节上有所不同,所以如果在.c里写C++就会出错了。
很明显里面的东西都是C++的,保存成.c编译就出错了
- 在VS2010下编写C应注意的问题(和编写C++的区别)
- 在VS2010下,用C语言编写pthread多线程程序的配置
- delphi调用vc编写的DLL应注意的问题
- vs2010编写C和解决窗口一闪而过的方法
- Linux下C的编写和执行
- php编写大型网站应注意的问题
- 编写函数时应注意的几点问题
- C++编写动态插件应注意的问题
- 编写第一个程序应注意的问题
- 使用VS2010编写Python的C扩展
- ++和——在c语言中应注意的一些小问题
- Eclipse在Windows下编写C语言的HelloWorld程序
- C++/C编写接口时需要注意的
- 用vs2013编写C语言与编写C++的区别
- Linux下C语言程序简单的编写和调试
- Linux下编写C/C++程序和ddd的使用
- 在linux中编写C和lua的程序
- 用VS2010编写C程序或VC++程序的步骤
- 使用U盘安装ubuntu 14.04
- C/C++语法知识精华整理(2)-栈与堆、内存四大区域、 全局变量、线程技术、位字段、函数返回值副本机制等
- iOS之UIView的圆角
- Android中visibility属性VISIBLE、INVISIBLE、GONE的区别
- PHP检测链接是否是SSL连接 ,也就是判断HTTPS
- 在VS2010下编写C应注意的问题(和编写C++的区别)
- 软件自动化实现的原理
- hdu 5347 MZL's chemistry(15多校第五场1005)
- 通过script向tpl页面插入一个form表单
- 关于Oracle复制一张表和复制表中的一条数据
- 如何获取网络标准时间
- 用二级指针作为形参建立二叉树
- linux下的vim快捷键
- Java 模拟 HTTP Get Post 请求实现论坛自动回帖