CMAKE_SYSTEM_PROCESSOR:目标系统的处理器,例如x86_64。 特殊宏 CMAKE_VERSION:CMake的版本。 BUILD_SHARED_LIBS:一个布尔变量,用于控制默认链接库的类型(静态或动态)。 项目宏 PROJECT_NAME:当前通过project()命令设置的项目名称。 PROJECT_SOURCE_DIR:包含最顶层CMakeLists.txt文件的目录,即项目的源代码根目录。
不会展开作为参数的宏foo, 所以结果是foo123。 可参看C宏展开的几个注意事项 - nanoix9 - 博客园,貌似很详细。 注意一下 VS 的展开规则,跟其他编译器不一样 (来自作者血泪的教训。Q ___ Q) ▌预先定义的宏: 有一些预先定义在前置处理器中的宏: __LINE__:从原始档开头起算,__LINE__所在的行数 __...
, __DATE__);printf("当前时间: %s\n", __TIME__); } 程序运行结果截图如下:C标准的预定义宏有很多,例如__STDC__、__STDC_HOSTED__、__STDC_ISO_10646__等等,有兴趣的朋友可以查阅详细文档进行了解,也可以私信我赠送电子版C标准文档。下期我们重点介绍下宏替换。段誉,2024年3月13日,写于合肥。
通过预定义宏,程序员使用“#ifdef”与“#endif”等预处理指令,就可使平台相关代码只在适合于当前平台的代码上编译,从而在同一套代码中完成对多平台的支持。从这个意义上讲,平台信息相关的宏越丰富,代码的多平台支持越准确。 2、C标准预定义宏 标准C 语言提供的一些标准预定义宏如表 1 所示。
1、写好C语言,漂亮的宏定义很重耍,使用宏定义可以防止岀错,提高可移植性,可读性,方便性等等。下而列举一些成熟软件中常用得宏定义仁防止一个头文件被重复包含#ifndefCOMDEF.H#defineCOMDEF_H头文件内容#endif重新定义些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。typedefunsignedcharbo...
宏定义又称为宏代换、宏替换,简称为宏。是 C 语言中最为常用的三种预处理指令之一。宏定义指令,是由 # 和关键字 define 组合而成的。它的作用是文本替换,使用标识符来代替替换列表中的内容。使用宏定义可以提高程序的通用性、易读性,减少因为输入错误产生的各种问题,同时还便于修改。例如:此处定义了一个宏...
C标准中一些预定义的宏 C标准中指定了一些预定义的宏,对于编程经常会用到。下面这个表中就是一些常常用到的预定义宏。 宏 意义 __DATE__ 进行预处理的日期(“Mmm dd yyyy”形式的字符串文字) __FILE__ 代表当前源代码文件名的字符串文字 __LINE__ 代...
预定义宏就是已经预先定义好的宏,我们可以直接使用,无需再重新定义。 ANSI C 规定了以下几个预定义宏,它们在各个编译器下都可以使用: __LINE__:表示当前源代码的行号; __FILE__:表示当前源文件的名称; __DATE__:表示当前的编译日期; __TIME__:表示当前的编译时间; ...
1.无需提供它们的定义,就可以直接使用。 2.预定义宏没有参数,且不可被重定义。 预定义宏一般分为两类: 标准预定义宏(Standard Predefined Macros), 编译器预定义宏(GNU-, Microsoft-Specific Predefined Macros) 一般情况下,C/C++编译器会内置几个宏,这些宏定义不仅可以帮助我们完成跨平台的源码编写,灵活使用也...