VS2013 预定义的宏
Visual Studio 2013 预定义的宏
列出预定义的 ANSI/ISO C99 和 Microsoft C++ 实现预处理宏。
编译器识别预定义的 ANSI/ISO C99 C 预处理宏,Microsoft C++ 实现将提供更多宏。 这些预处理器宏不带参数,并且不能重新定义。 本文中所列的一些预定义宏用多个值进行定义。
|
宏 |
说明 |
|---|---|
|
__DATE__ |
当前源文件的编译日期。 该日期是 Mmm dd yyyy 形式的字符串文本。 月份名称 Mmm 与 TIME.H 中声明的 asctime 库函数生成的日期相同。 |
|
__FILE__ |
当前源文件的名称。 __FILE__ 扩展到字符串文本。 若要确保显示文件的完整路径,请使用 /FC(所诊断源代码文件的完整路径)。 |
|
__func__ |
以 char 数组形式返回封闭函数的未限定和未修饰名称。 void Foo(){
|
|
__LINE__ |
当前源文件中的行号。 行号是一个十进制整数文本。 它可以随 #line 指令改变。 |
|
__STDC__ |
指示符合 ANSI/ISO C99 标准。 只有提供了 /Za 编译器选项但未编译 C++ 代码时才定义为整数型常数 1;否则是不确定的。 |
|
__TIME__ |
当前源文件的最新编译时间。 该时间是 hh:mm:ss 形式的字符串文本。 |
|
__TIMESTAMP__ |
当前源文件的最近一次的修改日期和时间,表示为以 Ddd Mmm Date hh:mm:ss yyyy 的形式编写的字符串文本,Ddd 为星期的缩写,而 Date 为从 1 到 31 的整数。 |
|
宏 |
说明 |
|---|---|
|
_ATL_VER |
定义 ATL 版本,编码为整数文本。 |
|
__AVX__ |
指定了 /arch:AVX 或 /arch:AVX2 时进行定义。 |
|
__AVX2__ |
指定了 /arch:AVX2 时进行定义。 |
|
_CHAR_UNSIGNED |
默认 char 类型为 unsigned。 指定了 /J 时进行定义。 |
|
__CLR_VER |
编译应用程序时,定义使用的公共语言运行时的版本。 返回值是采用以下格式编码的整数文本: Mmmbbbbb 其中,
// clr_ver.cpp |
|
__cplusplus_cli |
当使用 /clr、/clr:pure 或 /clr:safe 编译时定义。 __cplusplus_cli 的值是整数文本 200406。 __cplusplus_cli 的效力范围是整个翻译单元。 // cplusplus_cli.cpp |
|
__cplusplus_winrt |
当使用 /ZW 选项来编译时定义。 __cplusplus_winrt 的值是整数文本 201009。 |
|
__COUNTER__ |
扩展成一个以 0 开始的整数文本,该整数每次用于源文件或源文件包含的标头时增加 1。 当你使用预编译标头时,__COUNTER__会记住其状态。 下面的示例使用 __COUNTER__,将唯一标识符分配到同一类型的三个不同的对象。 首先,假设以下类定义。 构造函数将一个整数作为参数。 // initialize object with a read-only unique ID 在主窗格中,应用程序声明类型为 exampleClass 的三个对象,并将 __COUNTER__ 用作唯一标识符参数。 // Demonstration of __COUNTER__, assigns unique identifiers to |
|
__cplusplus |
仅定义 C++ 程序。 |
|
_CPPRTTI |
定义使用 /GR(启用运行时间类型信息)编译的代码。 |
|
_CPPUNWIND |
定义通过使用其中一个 /EH(异常处理模型) 标志编译的代码。 |
|
_DEBUG |
|
|
_DLL |
在指定 /MD 或 /MDd(多线程 DLL)时定义。 |
|
__FUNCDNAME__ |
仅在函数中有效。 将封闭函数的修饰名定义为字符串文本。 如果你使用的是 __FUNCDNAME__/EP 或 /P 编译器选项,不展开。 下面的示例使用 __FUNCDNAME__、__FUNCSIG__ 和 __FUNCTION__ 宏来显示函数信息。 // Demonstrates functionality of __FUNCTION__, __FUNCDNAME__, and __FUNCSIG__ macros |
|
__FUNCSIG__ |
仅在函数中有效。 将封闭函数的签名定义为字符串文本。 如果你使用的是 __FUNCSIG__/EP 或 /P 编译器选项,不展开。 在 64 位操作系统上,调用约定默认为 __cdecl。 有关示例,请参见 __FUNCDNAME__。 |
|
__FUNCTION__ |
仅在函数中有效。 将封闭函数的未修饰名定义为字符串。 如果你使用的是 __FUNCTION__/EP 或 /P 编译器选项,不展开。 有关示例,请参见 __FUNCDNAME__。 |
|
_INTEGRAL_MAX_BITS |
报告整型作为整形文本的最大大小(以位为单位)。 // integral_max_bits.cpp |
|
_M_AMD64 |
为面向 x64 处理器的编译进行定义。 |
|
_M_ARM |
为面向 ARM 处理器的编译进行定义。 |
|
_M_CEE |
定义使用任何形式的 /clr(例如 /clr:oldSyntax、/clr:safe)的编译。 |
|
_M_CEE_PURE |
定义使用 /clr:pure 的编译。 |
|
_M_CEE_SAFE |
定义使用 /clr:safe 的编译。 |
|
_M_IX86 |
为面向 x86 处理器的编译进行定义。 这不是为 x64 处理器定义的。 |
|
_M_ARM_FP |
扩展为指示使用哪个 /arch 编译器选项的整数型值:
|
|
_M_IX86_FP |
扩展为指示使用哪个 /arch 编译器选项的整数型值:
|
|
_M_X64 |
为面向 x64 处理器的编译进行定义。 |
|
_MANAGED |
当指定 /clr 时,定义为 1。 |
|
_MFC_VER |
定义 MFC 版本,编码为整数文字。 |
|
_MSC_BUILD |
计算结果为整数文字,其中包含编译器的版本号的修订号组合。 修订号为用句点分隔的版本号的第四个部分。 例如,如果 Visual C++ 编译器的版本号为 15.00.20706.01,则 _MSC_BUILD 宏计算结果为 1。 |
|
_MSC_EXTENSIONS |
在使用 /Ze 编译器选项(默认值)进行编译时,就定义了该宏。 定义时,值为 1。 |
|
_MSC_FULL_VER |
计算结果为整数文字,其编码编译器的主版本号、次版本号和生成版本号的组合。 主版本号时句点分隔的版本号的第一个部分,次版本号是第二个部分,而生成号是第三个部分。 例如,如果 Visual C++ 编译器的版本号为 15.00.20706.01,则 _MSC_FULL_VER宏计算结果为 150020706。 在命令行中键入 cl /?,查看编译器的版本号。 |
|
_MSC_VER |
计算结果为整数文字,其编码编译器的版本号的修订号组合。 主版本号是句点分隔的版本号的第一个部分,而次版本号是第二个部分。 例如,如果 Visual C++ 编译器的版本号为 17.00.51106.1,则 _MSC_VER 宏计算结果为 1700。 在命令行中键入 cl /?,查看编译器的版本号。 |
|
__MSVC_RUNTIME_CHECKS |
当指定其中一个 /RTC 编译器选项时定义。 |
|
_MT |
当指定 /MD 或 /MDd(多线程 DLL)或 /MT 或 /MTd(多线程)时定义。 |
|
_NATIVE_WCHAR_T_DEFINED |
当使用 /Zc:wchar_t 时定义。 |
|
_OPENMP |
当使用 /openmp 进行编译时定义,求值得出表示由 Visual C++ 实现的 OpenMP 规范日期的整数文本。 // _OPENMP_dir.cpp |
|
_VC_NODEFAULTLIB |
当使用 /Zl 时定义;有关详细信息,请参阅 /Zl(省略默认库名)。 |
|
_WCHAR_T_DEFINED |
当项目中包含的系统标头文件使用 /Zc:wchar_t 或者定义 wchar_t 时定义。 |
|
_WIN32 |
定义 Win32 和 Win64 的应用程序。 始终定义。 |
|
_WIN64 |
定义为Win64应用程序。 |
VS2013 预定义的宏的更多相关文章
- C标准中一些预定义的宏
C标准中指定了一些预定义的宏,对于编程经常会用到.下面这个表中就是一些常常用到的预定义宏. 宏(双下滑线) 意义 __DATE__ 进行预处理的日期(“Mmm dd yyyy”形式的字符串文字) __ ...
- visual c++中预定义的宏
一.主要目标 (由于visual studio通常包含很多开发环境,通常将其中c/c++的ide称为visual c++ 20xx) 整理下visual c++ 2010下预定义的宏.做一下备忘和了解 ...
- C标准中一些预定义的宏,如__FILE__,__func__等
C标准中一些预定义的宏 C标准中指定了一些预定义的宏,对于编程经常会用到.下面这个表中就是一些常常用到的预定义宏. 宏 意义 __DATE__ 进行预处理的日期(“Mmm dd yyyy”形式的字符串 ...
- ARM编译器中预定义的宏
arm系列目前支持三大主流的工具链,realview的armcc,iar ewarm的iccarm,gnu的gcc,编译器在编译的时候会预定义一些宏,这些宏在工程中起到不可或缺的作用. 例如 /* d ...
- 2019-8-31-dotnet-新项目格式与对应框架预定义的宏
title author date CreateTime categories dotnet 新项目格式与对应框架预定义的宏 lindexi 2019-08-31 16:55:58 +0800 201 ...
- dotnet 新项目格式与对应框架预定义的宏
在 sdk style 的项目格式支持使用多框架开发,此时需要在代码里面通过宏判断,在编译的时候执行不同的代码.本文告诉大家在框架里面对应的预定义的条件编译符有哪些 在让一个 csproj 项目指定多 ...
- gcc中预定义的宏__GNUC__
转载:gcc中预定义的宏__GNUC__ - Cccarl - 博客园 (cnblogs.com) 今天在看Linux系统编程这本书的代码的时候看到了__GNUC__,不太清楚这个宏所以去查了一下,以 ...
- C/c++几个预定义的宏:__DATE__,__TIME__,__FILE__,__LINE__
一边情况下,C/C++编译器会内置几个宏,这些宏定义不仅可以帮助我们完成跨平台的源码编写,灵活使用也可以巧妙地帮我们输出非常有用的调试信息. ANSI C标准中有几个标准预定义宏(也是常用的): __ ...
- Android CPU类型及预定义的宏
[时间:2019-02] [状态:Open] [关键词:android,cpu, armeabi, armeabi-v7a, arm64-v8a, 32位,64位,c/c++] 本文主要总结下前段时间 ...
随机推荐
- sqlserver 2008R2数据库迁移oracle
x项目需要,将以前的sqlserver数据库迁移的oracle数据库中,由于以前对oracle只是在DML语句的步骤,所以总结一下这次遇到的问题以及具体步骤 1,oracle新建数据库 新建Oracl ...
- BZOJ 1857 传送带 (三分套三分)
在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R.现在lxhgww想从 ...
- textarea去掉右侧滚动条,去掉右下角拖拽
代码: <TEXTAREA style= "overflow:hidden; resize:none; "> </TEXTAREA> 当使用背景图片的时候, ...
- css 隔行变色,表单布局
隔行变色: #list1 li:nth-of-type(odd){ background:#00ccff;}奇数行 #list1 li:nth-of-type(even){ background:# ...
- jQuery取得select选择的文本与值
jquery获取select选择的文本与值获取select :获取select 选中的 text :$("#ddlregtype").find("option:selec ...
- QString, string, int, char* 之间相互转换
这三种数据类型在实际运用中经常需要互相转换,那么这里小结下它们之间的转换方法: - Qstring & string Qt中封装的类十分强大,其成员函数数量之多比STD有过之而无不及,许多程序 ...
- 开源任务管理平台TaskManager介绍
很早之前准备写Quartz系列文章,现在终于能够实现了.从本篇开始将带你实现一款自己的任务管理平台.在工作中你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上11:30,或许仅仅每个月的最后一 ...
- 20145208 《Java程序设计》第0周学习总结
20145208 <Java程序设计>第0周学习总结 阅读心得 读了老师推荐的几个文章,虽然第四个文章"为什么一定要自学"报告资源不存在而无法阅读,其他的三篇文章都言之 ...
- HTML5 移动浏览器支持
- UISearchBar控件-让我们来搞定!(转)
转载自:http://blog.sina.com.cn/s/blog_7b9d64af0101dfg8.html 最近用到搜索功能.于是,经过不断的研究,终于,有点懂了. 那就来总结一下吧,好 ...