重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
用函数,因为要有函数调用,增加了执行时的开销,效率不如宏,但是可代码重用。用宏虽然没有函数调用,但是因为在使用这个宏的地方,代码会被展开编译,增加了程序文件的大小。
按需求定制制作可以根据自己的需求进行定制,成都做网站、成都网站设计构思过程中功能建设理应排到主要部位公司成都做网站、成都网站设计的运用实际效果公司网站制作网站建立与制做的实际意义
可以简单的认为,宏是在编译时上起作用,而函数是运行时起作用。。
函数只在目标文件中存在一处,比较节省程序空间。函数的调用会牵扯到参数的传递,压栈/出栈操作,速度相对较慢。函数的参数存在传值和传地址(指针)的问题,参数宏不存在。
1、参数宏的运行速度会比函数快,因为不需要参数压栈/出栈操作。参数宏在定义时要多加小心,多加括号。函数只在目标文件中存在一处,比较节省程序空间。
2、函数就不同了,函数还需要分配栈空间,在执行函数时都要进行入栈和出栈操作,有的还需要分配堆空间。
3、也就是说程序在运行时,早已变成了对应位置上的代码,此时已没有宏的概念了。。而函数则是运行时,调用。他不会在编译时,在对应位置上加上函数代码,只是加上一个函数入口指针。。从这个入口去运行一段代码。。
4、不仅仅是函数,定义和宏的主要区别在预编译的时候,定义在预编译的时候的主要操作时分配空间或内存,宏是进行了替换。
5、int k=max(i++,j++);如果是函数调用,i==5,j==6,k==5。如果是宏的话,结果是:int k=((i++)(j++)?(i++):(j++));你觉得会一样吗?所以,慎用宏。
1、而函数则是运行时,调用。他不会在编译时,在对应位置上加上函数代码,只是加上一个函数入口指针。。从这个入口去运行一段代码。。运行完了之后回到当前位置继续执行。。
2、函数就不同了,函数还需要分配栈空间,在执行函数时都要进行入栈和出栈操作,有的还需要分配堆空间。
3、宏与函数的区别主要在于是否返回值,一般函数都有返回值,宏是不可以的。宏和函数都不必须要求参数,参数都是可有可无的。用函数,因为要有函数调用,增加了执行时的开销,效率不如宏,但是可代码重用。