#define命令是C语言中的一个宏定义命令,它用来讲一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。该命令有两种格式:一种是简单的宏定义(不带参数的宏定义),另一种是带参数的宏定义。 (1) 简单的宏定义 格式:#define <宏名/标识符> <字符串> eg:#define PI 3.1415926 说明...
参考这里Concatenation#include//宏定义#defineGET_NAME(x)#xvoidfun0(){;}intmain(){//获取name==...
The square of8is64 2. ##运算符可以用于宏函数的替换部分 ##就是个粘合剂,将前后两部分粘合起来,也就是有“组成变量名”的意思。特别要和#运算符的功能区分开来,#是连接字符串,而##是连接变量名。 但是“##”不能随意粘合任意字符,必须是合法的C语言标示符。在单一的宏定义中,最多可以出现一次“#”或...
__func__ 函数名/非标准 __FUNC__ 函数名/非标准 __PRETTY_FUNCTION__ 更详细的函数信息/非标准 4、预定义命令-条件式编译 函数 说明 #ifdef DEBUG 是否定义了DEBUG宏 #ifndef DEBUG 是否没有定义DEBUG宏 #if MAX_N == 5 宏MAX_N是否等于5 #elif MAX_N == 4 否则宏MAX_N是否等于4 #else #endif...
宏函数 CPP 一个强大的功能是可以使用参数化的宏来模拟函数,这里应用了 CPP 的 “字符串常量化运算符”,格式如下: #define <宏名>(<参数列表>) <宏体> 示例: // 函数 int square(int x) { return x * x; } // 带参数的宏定义 #define square(x) ((x) * (x)) 示例: ...
(1)宏定义是在预处理期间处理的,而函数是在编译期间处理的。这个区别带来的实质差异是:宏定义最终是在调用宏的地方把宏体原地展开,而函数是在调用函数处跳转到函数中去执行,执行完后再跳转回来。 注:宏定义和函数的最大差别就是:宏定义是原地展开,因此没有调用开销;而函数是跳转执行再返回,因此函数有比较大的调...
其作用是:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串。其只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。 如: #define example(instr) printf("the input string is:/t%s/n",#instr) #define example1(instr) #instr ...
#define 宏函数名(参数列表) 替换文本 其中,宏函数名是用户自定义的宏函数名称,参数列表包含宏函数的参数,替换文本是宏函数的真正执行内容。 宏函数可以在任何需要的地方使用,它的使用方式和普通的函数调用非常相似。例如: 宏函数名(参数列表) 三、宏函数的优缺点 3.1 优点 •宏函数在编译时会进行简单的文本替换...
C语言允许宏带有参数。在宏定义中的参数称为“形式参数”,在宏调用中的参数称为“实际参数”,这点和函数有些类似。对带参数的宏,在展开过程中不仅要进行字符串替换,还要用实参去替换形参。带参宏定义的一般形式为:#define 宏名(形参列表) 字符串 在字符串中可以含有各个形参。带参宏调用的一般形式为:宏名...