![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
宏
文章平均质量分 51
宏
Shijie Peng
这个作者很懒,什么都没留下…
展开
-
__cplusplus 和 __cplusplus__区别
当使用 C++ 编译器编译 C++ 程序时,__cplusplus 宏会被定义。你可以使用条件编译来根据 __cplusplus 宏的定义情况执行不同的代码。是 __cplusplus 的备用宏,用于兼容一些旧版本的编译器。在大多数情况下,你可以直接使用 __cplusplus 宏来判断是否为 C++ 环境。请注意,__cplusplus 宏的值是一个整数,表示 C++ 的版本。不同的编译器可能会定义不同的值,因此在使用时需要注意兼容性。是预定义的宏,用于判断当前编译环境是否为 C++ 环境。原创 2023-07-26 16:07:44 · 1267 阅读 · 0 评论 -
宏定义中常见的 do{ }while(0)
在大部分情况下可以工作,但是如果之前已经定义了tmp这个变量,则就会出错了,那我们可以把tmp换成平时不常用的名字,就大大降低了重名的概率了,这确实是一个办法,但不完美,因为即使这样,依然无法用在switch语句中。在阅读第三方源码时,经常见到宏定义中有一个do{ }while(0)语句,这是为什么呢?是否就完美了呢,依然不行,因为还可能会影响if语句的执行,看下面的例子。那我们想,是否可以定义宏的时候,加上一层大括号,嗯,确实可以。这时,就要祭出do{ }while(0)大杀器了,转载 2023-07-26 16:19:32 · 164 阅读 · 0 评论 -
Visual Studio 2015编译器 自动生成 XXX_EXPORTS宏
在使用Visual Studio 2015创建Win32项目时,编译器会自动添加这个宏到项目的预定义宏中。这样,在编译和链接过程中,编译器会根据宏的定义来正确处理导出和导入符号。这个宏的作用是在编译过程中帮助标识导出符号,以便在动态链接库中正确地导出和导入函数和变量。因此,如果你在不同的项目中使用Visual Studio 2015创建项目,可能会看到不同的宏名称。要在编译和链接过程中正确处理动态链接库的导出和导入,可以使用这个宏来标识需要导出的函数和变量,并使用适当的导出修饰符。原创 2023-07-26 18:48:20 · 1226 阅读 · 0 评论 -
C/C++常用宏归纳
TO_STRINGTO_STRING宏接受一个参数t,并使用#运算符将其转换为字符串。这意味着当你在代码中使用TO_STRING(abc)时,它将被替换为字符串"abc"。MAP_TO_STRING宏接受一个参数ot,并使用TO_STRING宏将其转换为字符串。这个宏的目的是将一个值和它的字符串表示关联起来。例如,当你在代码中使用MAP_TO_STRING(123)时,它将被替换为{“123”, 123}。这些宏可以在代码中用于创建字符串表示和关联值和字符串的映射。原创 2023-07-26 20:18:24 · 337 阅读 · 0 评论 -
_WIN32和_WIN64区别
WIN32 是一个预定义的宏,用于判断当前编译环境是否为 Windows 操作系统。当使用 MSVC 编译器编译 Windows 应用程序时,无论是 32 位还是 64 位的 Windows 环境,_WIN32 宏都会被定义。你可以使用条件编译来根据 _WIN32 宏的定义情况执行不同的代码。这样可以根据不同的编译环境执行相应的代码逻辑。请注意,_WIN32 宏并不能区分 32 位和 64 位的 Windows 环境,如果需要区分这两种环境,可以使用 _WIN64 宏。原创 2023-07-26 16:03:35 · 679 阅读 · 0 评论