其中,宏函数名是用户自定义的宏函数名称,参数列表包含宏函数的参数,替换文本是宏函数的真正执行内容。 宏函数可以在任何需要的地方使用,它的使用方式和普通的函数调用非常相似。例如: 宏函数名(参数列表) 三、宏函数的优缺点 3.1 优点 •宏函数在编译时会进行简单的文本替换,不需要函数的调用开销,执行效率高。
通过宏定义函数,可以将一段代码定义为一个宏,在程序的任何地方都可以使用。这样可以避免重复编写相同的代码,提高代码的复用性。 2.3 减少代码量 宏定义函数可以将一段代码替换为一个宏,从而减少代码的长度。这不仅可以提高代码的可读性,还可以减少编码工作量。 2.4 提高程序的执行效率 由于宏定义函数是在编译阶段进行...
C语言中宏函数的定义和用法 宏函数是一种特殊的函数宏,与普通函数宏不同的是,它可以拥有多条语句和局部变量,从而实现更复杂的功能。它的定义类似于普通函数,但用大括号包裹起来,并以分号结束每个语句。 #defineTEST(a, b) ({ int temp = a; a = b; b = temp; }) 好奇的读者就会有这样的疑问,为什么...
__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...
2.带参数的宏定义: 除了一般的字符串替换,还要做参数代换 格式: #define 宏名(参数表) 字符串 例如:#define S(a,b) a * b ,area=S(3,2);第一步被换为area=a*b; ,第二步被换为area = 3 * 2; 类似于函数调用,有一个哑实结合的过程: ...
带参数的宏可以包含空的参数列表,如下例所示: 代码语言:javascript 复制 #definegetchar()getc(stdin) 空的参数列表不是一定确实需要,但可以使getchar更像一个函数。(没错,这就是<stdio.h>中的getchar,getchar的确就是个宏,不是函数——虽然它的功能像个函数。) ...
C语言宏定义函数是指在C语言程序中使用宏定义函数实现的一种特殊的代码块,它可以被定义为一组指令的集合。它的基本结构类似于函数,但它不像函数那样可以调用,而是在编译时处理,在代码执行阶段不存在。2.宏定义函数的优点 (1)C语言宏定义函数可以简化编码并加快程序执行速度。(2)C语言宏定义函数改变后,只...
因为宏定义只是文本替换,所以预处理的时候,会将所有的 N 替换成 5;,放到源代码中 arr[5;] 这种写法不符合 C 语言语法,所以就会产生报错。 无参宏定义还可以替换表达式,但需要注意的是,表达式需要加上括号,否则就会出现逻辑上的错误。例如:3. 带参宏定义 定义格式:此参数列表和函数中定义的参数列表很...
C语言字符串、宏定义及主函数介绍 希望你每天醒来都是阳光的,不会因为别人的几句话、几个表情和几个举止,影响自己的心情,好好生活,总会遇见美好的事。。。 --- 网易云热评 一、字符串 1、字符串声明 #include <stdio.h> int main() { char str[] = "abc"; //用字符串字面值对字符数组进行初始化,这...