VS中添加预处理宏的方法
VS中添加预处理宏的方法
除了在.c及.h中添加宏定义之外,还可以采用如下方法添加宏定义:
1、若只需要定义一个宏(如#define DEBUG),可以右键点击工程-->属性-->c/c++-->预处理器-->预处理器定义,点击下拉框中的编辑,输入想要定义的宏;
2、如果还需要定义宏的内容(如#define inline __inline),可以右键点击工程-->属性-->c/c++-->命令行,在其它选项中输入如下内容: /D"inline"=__inline 。
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应用程序。 |
VS中添加预处理宏的方法的更多相关文章
- 在html中添加script脚本的方法和注意事项
在html中添加script脚本有两种方法,直接将javascript代码添加到html中与添加外部js文件,这两种方法都比较常用,大家可以根据自己需要自由选择 在html中添加<script& ...
- 如何在Eclipse中添加Servlet-api.jar的方法
方法一: 点击窗口->首选项->java->构建路径->类路径变量->新建:将你的tomcat目录下的common/lib/servlet.jar加进来.如果你建立了一个 ...
- Android开发过程中在sh,py,mk文件中添加log信息的方法
Android开发过程中在sh,py,mk文件中添加log信息的方法 在sh文件中: echo "this is a log info" + $info 在py文件中: print ...
- 详解VMware 虚拟机中添加新硬盘的方法
一.VMware新增磁盘的设置步骤 (建议:在设置虚拟的时候,不要运行虚拟机的系统,不然添加了新的虚拟磁盘则要重启虚拟机) 1.选择“VM”----“设置”并打开,将光标定位在“硬盘(SCSI)”这一 ...
- 【前端】向blog或网站中添加语法高亮显示代码方法总结
向blog或网站中添加语法高亮显示的代码方法总结 文章目录 预备知识 目标 第一类方法:嵌入 第二类方法:外部引用 第三类方法:忽略HTML和PHP 最近在写代码时遇到一个问题,就是如何让代码像在ID ...
- VMware 虚拟机中添加新硬盘的方法(转载)
随着在虚拟机中存储的东西的逐渐的增加,虚拟机的硬盘也逐渐告急,因此急需拓展一块新的虚拟磁盘.以下便是在VMware 中添加新的虚拟磁盘的方法: 一.VMware新增磁盘的设置步骤 (建议:在设置虚 ...
- Androidstudio中添加jar包的方法
在Androidstudio中添加一个jar包进去,怎么添加? 以下纯个人使用Androidstudio过程中的经验积累,要是有不足,望提出建议. 方法一: 先点击Androidstudio中的Pro ...
- VS2010在C#头文件中添加文件注释的方法
步骤: 1.VS2010 中找到安装盘符(本人安装目录在D盘,所以以D盘为例)D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\I ...
- excel表格中添加单引号的方法
今天碰到需要插入大量数据的excel表格,其中有很多文本,需要添加单引号. 方法如下: 左边是原始数据,右边是我即将添加单引号的空白区域. 第一步:在需要添加的位置输入= 第二步:输入等号之后点击需要 ...
随机推荐
- TOJ 3651 确定比赛名次
描述 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排 名,但现在裁判委员会不能直接获得每个队的比赛成绩 ...
- 【计算机网络】HTTP请求和响应格式
HTTP请求格式:<request-line><headers><blank line>[<request-body>]说明:第一行必须是一个请求行(r ...
- 数据库保存session
一般情况下,php.ini里的session.save_handler默认是file,也就是用文件来保存session,这种方式有几个缺点: 1.如果单靠session自己的垃圾回收机制,时间久了,保 ...
- 净推荐值(NPS):用户忠诚度测量的基本原理及方法
文章分享了一个衡量用户与产品或服务之间关系的指标:NPS,干货满满,希望对你有益. 初识NPS 作为互联网行业的用户体验从业者,我们都或多或少会接触一些衡量用户与产品或服务之间关系的指标,常见的指标如 ...
- Unity 基础
Unity 基础是unity入门的关键.他将讲解Unity的界面, 菜单项,使用资源,创设场景,并发布版本. 当你读完这段,你将理解unity是怎么工作的,如何有效地使用它,并且完成一个基本的游戏. ...
- Bitmap图片查看器
在Android 应用中使用assets目录下存放的资源文件,assets目录下存放的资源代表应用无法直接访问的原生资源,应用程序通过AssetManager以二 进制流的形式来读取资源.此应用是查看 ...
- hdu 3265 矩形剪块面积并
http://acm.hust.edu.cn/vjudge/problem/10769 给n张海报,在每张海报上剪掉一个矩形,求面积并 把剪块的海报分成四个矩形,就是普通的求面积并问题了 #inclu ...
- IO流之流的操作规律
流的操作规律 IO流中对象很多,解决问题(处理设备上的数据时)到底该用哪个对象呢? 把IO流进行了规律的总结(四个明确): l 明确一:要操作的数据是数据源还是数据目的. 源:InputStream ...
- RDMA in CloudComputing
https://blog.csdn.net/qq_21125183/article/details/80563463
- jquery控制滚动条
$(function () { $("table tr td a").css('white-space', 'nowrap'); $("div[id$=ctlScroll ...