关于编译器和windows的几个主要预定义值
来源:互联网 发布:好看的网站数据库 编辑:程序博客网 时间:2024/05/18 01:53
编译器和windows操作系统的几个主要预定义值对程序的编译会有影响,以下为基本的列表
(关于详细的c++编译预定义,请在msdn中搜索“Predefined Macros”以获取更准备更全面的描述)
一、c++预定义
__cplusplus
一般是在c库的头文件中使用,方法如下:
#ifdef __cplusplus
extern "C" {
#endif
... // C库的函数和数据类型声明
#ifdef __cplusplus
}
#endif
二、c++编译器的版本定义
这里的C++是指vs(visual studio、vc++)的编译器cl的版本定义,表面也可以说是VS IDE的版本预定义.(有助于搜索,vs2005,vs2008)
版本预定义:_MSC_VER
Compiler _MSC_VER value
-------- --------------
C Compiler version 6.0 600
C/C++ compiler version 7.0 700
Visual C++, Windows, version 1.0 800
Visual C++, 32-bit, version 1.0 800
Visual C++, Windows, version 2.0 900
Visual C++, 32-bit, version 2.x 900
Visual C++, 32-bit, version 4.0 1000
Visual C++, 32-bit, version 5.0 1100
Visual C++, 32-bit, version 6.0 1200
Visual C++, version 2003 .Net 1310
Visual C++, version 2005 1400
Visual C++, version 2008 1500
三、文件的编译选项
3.1 编译日期预定义:__DATE__
表明当前文件的编译日期,结果为字符串,格式为: Mmm dd yyyy,其中的月份名称 Mmm 为time.h中asctime()函数产生的日期中的月份名称
编译时间:__TIME__
结果是字符串,格式为:hh:mm:ss
最后的修改时间定义:__TIMESTAMP__
格式为:Ddd Mmm Date hh:mm:ss yyyy,其中日为1 ~ 31
3.2 文件名预定义:__FILE__
可以在文件的输出位置打印本文件名,这个在写异常调试日志时比较有用
文件行号预定义:__LINE__
当前代码所处的行号,它是一个整数
四、windows版本问题
(注:本节的翻译是我对这些英文的理解基础上进行的翻译,可能不准确)
对这些版本有两种方法定义,一种是老的预定义,一种是新的预定义。
新的预定义(The following table describes the preferred macros in use by the Windows header files.):
老的预定义(The following table describes the legacy macros in use by the Windows header files.):
(此文以后可能会不断更新)
- 关于编译器和windows的几个主要预定义值
- 关于编译器和windows的几个主要预定义值
- 关于编译器和windows的几个主要预定义值
- 编译器预定义宏__GNUC__和_MSC_VER
- 如何获取编译器预定义宏的值
- 各个编译器预定义的表示编译器类型和版本号的宏
- make 的主要预定义变量
- GNU make 的主要预定义变量
- make 的主要预定义变量
- GNU make 的主要预定义变量
- GNU make 的主要预定义变量
- GNU make 的主要预定义变量
- ARM编译器中预定义的宏
- C语言编译器的预定义符号
- C语言编译器的预定义符号
- ARM编译器中预定义的宏
- 常用的 预定义宏(编译器)
- 查看编译器预定义的宏
- fc10下不能使用kghostview命令
- Java正则表达式教程
- 關於子類和父類複值問題
- 过滤器大全
- Apache 的 httpd.conf 详解(2)
- 关于编译器和windows的几个主要预定义值
- C#通用的数据操作类
- 从图像转换到byte[]数组的几种方法
- 感言
- SAP 包含的模块
- C3D MiliEarth 升级 V1.3 支持海底
- SAP管理系统介绍
- LINUX 常用命令总结
- 利用webBrowser获取框架内Html页面内容