c语言查看函数大小 c语言函数速查手册

C语言函数比较大小代码如下:
#include stdio.h
#include stdlib.h
int max(int a, int b)
{
return ab ? a : b;
}
int main()
{
int i, m, n;
scanf("%d", m);
for (i = 1; i8; i++) {
scanf("%d", n);
m = max(m, n);
}
printf("最大数:%d\n", m);
system("pause");
return 0;
}
运行结果:
c语言中函数名代表函数地址 , 那函数的大?。ň褪呛噶钤谀诖嬷械淖纸谑┰趺辞螅壳虢馐鸵幌?/h2>以在linux下为例,适用gcc编译一个名为test.c的文件,文件里面有个函数定义void test(void);
#include "stdio.h"
void test(void)
{
printf("test!!!\n");
}
int main(int arg, void *args[])
{
test();
return 0;
}
编译命令gcc -o test test.c 生成test可执行文件 。
用readelf -s test命令可以读出test文件里面的各个段的大小 。
Symbol table '.dynsym' contains 6 entries:
Num:ValueSize TypeBindVisNdx Name
0: 000000000 NOTYPELOCALDEFAULTUND
1: 00000000401 FUNCGLOBAL DEFAULTUND puts@GLIBC_2.0 (2)
2: 00000000391 FUNCGLOBAL DEFAULTUND __libc_start_main@GLIBC_2.0 (2)
3: 0804845c4 OBJECTGLOBAL DEFAULT14 _IO_stdin_used
4: 000000000 NOTYPEWEAKDEFAULTUND _Jv_RegisterClasses
5: 000000000 NOTYPEWEAKDEFAULTUND __gmon_start__
Symbol table '.symtab' contains 71 entries:
Num:ValueSize TypeBindVisNdx Name
0: 000000000 NOTYPELOCALDEFAULTUND
1: 080481140 SECTION LOCALDEFAULT1
2: 080481280 SECTION LOCALDEFAULT2
3: 080481480 SECTION LOCALDEFAULT3
4: 080481740 SECTION LOCALDEFAULT4
5: 080481d40 SECTION LOCALDEFAULT5
6: 080482320 SECTION LOCALDEFAULT6
7: 080482400 SECTION LOCALDEFAULT7
8: 080482600 SECTION LOCALDEFAULT8
9: 080482680 SECTION LOCALDEFAULT9
10: 080482800 SECTION LOCALDEFAULT10
11: 080482980 SECTION LOCALDEFAULT11
12: 080482d80 SECTION LOCALDEFAULT12
13: 0804843c0 SECTION LOCALDEFAULT13
14: 080484580 SECTION LOCALDEFAULT14
15: 080484680 SECTION LOCALDEFAULT15
16: 0804946c0 SECTION LOCALDEFAULT16
17: 080494740 SECTION LOCALDEFAULT17
18: 0804947c0 SECTION LOCALDEFAULT18
19: 080494800 SECTION LOCALDEFAULT19
20: 080495480 SECTION LOCALDEFAULT20
21: 0804954c0 SECTION LOCALDEFAULT21
22: 080495640 SECTION LOCALDEFAULT22
23: 080495700 SECTION LOCALDEFAULT23
24: 000000000 SECTION LOCALDEFAULT24
25: 000000000 SECTION LOCALDEFAULT25
26: 000000000 SECTION LOCALDEFAULT26
27: 000000000 SECTION LOCALDEFAULT27
28: 080482fc0 FUNCLOCALDEFAULT12 call_gmon_start
29: 000000000 FILELOCALDEFAULTABS crtstuff.c
30: 0804946c0 OBJECTLOCALDEFAULT16 __CTOR_LIST__
31: 080494740 OBJECTLOCALDEFAULT17 __DTOR_LIST__
32: 0804947c0 OBJECTLOCALDEFAULT18 __JCR_LIST__
33: 080495701 OBJECTLOCALDEFAULT23 completed.4583
34: 0804956c0 OBJECTLOCALDEFAULT22 p.4582
35: 080483200 FUNCLOCALDEFAULT12 __do_global_dtors_aux
36: 080483540 FUNCLOCALDEFAULT12 frame_dummy
37: 000000000 FILELOCALDEFAULTABS crtstuff.c
38: 080494700 OBJECTLOCALDEFAULT16 __CTOR_END__
39: 080494780 OBJECTLOCALDEFAULT17 __DTOR_END__
40: 080484680 OBJECTLOCALDEFAULT15 __FRAME_END__
41: 0804947c0 OBJECTLOCALDEFAULT18 __JCR_END__
42: 080484140 FUNCLOCALDEFAULT12 __do_global_ctors_aux
43: 000000000 FILELOCALDEFAULTABS test.c
44: 080494800 OBJECTGLOBAL DEFAULT19 _DYNAMIC
45: 080484584 OBJECTGLOBAL DEFAULT14 _fp_hw
46: 0804946c0 NOTYPEGLOBAL HIDDENABS __fini_array_end
47: 080495680 OBJECTGLOBAL HIDDEN22 __dso_handle
48: 0804840c5 FUNCGLOBAL DEFAULT12 __libc_csu_fini
49: 00000000401 FUNCGLOBAL DEFAULTUND puts@@GLIBC_2.0
50: 080482800 FUNCGLOBAL DEFAULT10 _init
51: 0804837c24 FUNCGLOBAL DEFAULT12 test

推荐阅读