C语言中,函数和函数宏的区别和异同

函数的运转方式:

首先来说明函数在计算机当中的底层的运转逻辑。第一点要明确知道的是,函数是处于计算机编写程序四个阶段的第二个阶段(预处理,编译,汇编,链接),处于编译这个阶段运行的。它的作用是,程序编译到函数的位置时,跳转到定义这个函数的地方(注意,这里不是将函数里的东西复制过去),在这个地方是会进行运算处理的。

函数宏的运转方式:

函数宏是计算机编写程序时的第一个阶段,预处理阶段,在这个阶段处理程序时,它并没有对程序进行运算,而是将定义的东西复制到这个程序当中来,在程序当中出现了多少次就复制多少次,只是把函数宏里面的东西复制过去不进行运算

主要不同点:

从它们的运转方式的不同来看,很明显宏对于函数来说,在有比较多次出现同一数据的程序里,宏所需要的内存空间明显比较大。而函数是定义完了进行跳转,很明显如果有比较多次出现同一数据的程序里,函数的运转效率就不如宏的运转效率高。总结来说,函数是占的内存相对来说比较小,但运转效率不够快。函数宏是,运转效率比较快,但需要的储存空间比较大

对于宏而言,宏的缺点还体现在它的定义数据上,定义宏并不需要定义一个数的数据类型,可能导致程序出现一定程度上的问题。并且由于函数宏不进行运算的只进行复制的原因,会比较容易导致因为运算优先级出现的问题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值