표준 C (ISO/IEC 9899 : 1999) 섹션 6.5.3.4는 sizeof의 연산자 함수 타입 또는이있는 식에 적용되지 않는다왜 표준를 금지를 sizeof 함수에 적용될
말한다 불완전 유형
왜? readelf
으로 실행 파일을 검사하면 컴파일하는 동안 함수 크기를 완벽하게 알 수 있습니다.
Symbol table '.symtab' contains 67 entries:
Num: Value Size Type Bind Vis Ndx Name
.......
37: 0000000000400541 16 FUNC LOCAL DEFAULT 13 clean
.......
46: 00000000004005f0 2 FUNC GLOBAL DEFAULT 13 __libc_csu_fini
......
49: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [email protected]@GLIBC_2.2.5
52: 00000000004005f4 0 FUNC GLOBAL DEFAULT 14 _fini
53: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [email protected]@GLIBC_
ed
58: 0000000000400560 137 FUNC GLOBAL DEFAULT 13 __libc_csu_init
62: 000000000040052c 21 FUNC GLOBAL DEFAULT 13 main
여기 0
크기는 공유 라이브러리, 예를 들면 [email protected]@GLIBC_2.2.5
함수로부터 함수에 속한다. 그래서 내가 libc
정보를 확인, 여기 readelf -a /lib/x86_64-linux-gnu/libc.so.6
출력의 조각이 [email protected]@GLIBC_2.2.5
Size Type
...........
399: 0000000000070ec0 392 FUNC WEAK DEFAULT 12 [email protected]@GLIBC_2.2.5
관련이있다는 단순히 불필요한 기능으로, 또는 C
철학을 중단하거나, 내가 볼 수없는이 몇 가지 기술적 인 문제?
만약에 함수가 인라인 되었다면? 크기를 어떻게 계산할 수 있습니까? –