- 测试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 }