宏定义和宏函数
宏定义
在C语言中,使用关键字 #define 定义宏。
所谓宏就是将一个标识符定义成一个字符串符,完成定义的命令成为宏定义或预处理命令 ,其中,标识符称为宏明;当定义了宏明后,在源程序中就可以引用宏。
定义宏又称为编译预处理命令。宏名通常都用大写字母组成,以区别与一般变量名,数组名,指针变量名。
例:定义一个比较大小的宏函数
输出最大值为3;我们再使用一个函数的嵌套比较大小。
输出的结果为:
我们预想的最大值应该为5,但运行结果却是1。解决方法就是在定义宏函数时,一般把函数中的变量加括号。
给变量加了括号后,此时运行的结果为5;
关于宏定义应该注意以下几点:
①字符串不带双引号。
②宏明的前后应有空格,以便准确地界定宏名。
③C语言的预处理命令都是以换行符(\n)结尾的,即每条C语言预处理命令都占用一行。本命令不是语句,其后不要跟分号(;)。
④在字符串中如果出现运算符,要注意替换后的结果,通常可以再合适的位置上加括号。
宏定义和宏函数
宏定义
在C语言中,使用关键字 #define 定义宏。
所谓宏就是将一个标识符定义成一个字符串符,完成定义的命令成为宏定义或预处理命令 ,其中,标识符称为宏明;当定义了宏明后,在源程序中就可以引用宏。
定义宏又称为编译预处理命令。宏名通常都用大写字母组成,以区别与一般变量名,数组名,指针变量名。
例:定义一个比较大小的宏函数
输出最大值为3;我们再使用一个函数的嵌套比较大小。
输出的结果为:
我们预想的最大值应该为5,但运行结果却是1。解决方法就是在定义宏函数时,一般把函数中的变量加括号。
给变量加了括号后,此时运行的结果为5;
关于宏定义应该注意以下几点:
①字符串不带双引号。
②宏明的前后应有空格,以便准确地界定宏名。
③C语言的预处理命令都是以换行符(\n)结尾的,即每条C语言预处理命令都占用一行。本命令不是语句,其后不要跟分号(;)。
④在字符串中如果出现运算符,要注意替换后的结果,通常可以再合适的位置上加括号。