内联函数与宏的实现及效率

  • 测试1:通过对比源码、预处理后代码、汇编后代码,发现,汇编后,宏与内联的实现效率完全一样。

 gcc -O1 inline_macro_diff.c -E    
 gcc -O1 inline_macro_diff.c  -S
 gcc -O1 inline_macro_diff.c -c
 gcc -O1 inline_macro_diff.c   
 objdump -d inline_macro_diff.o   

源代码:

1 #include <stdio.h>
2 #define add(x, y) ( (x) + (y))
3
4 inline int add_fun(int x, int y)
5 {
6 return x+y;
7 }
8
9
10 void test()
11 {
12 int a = 100;
13 int b = 11;
14 int result1 = add(a, b);
15 int result2 = add_fun(a, b);
16 printf("the result1 is %d, result2 is %d\n", result1, result2);
17 }
18
19 int main()
20 {
21 test();
22 return 0;

23 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值