iostream
ソースが実際に C としてコンパイルされるように、の冗長なインクルードを削除し、私のシステムでそれを vypis という実行可能ファイルにコンパイルしました。これが私が見つけたものです:
$ nm vypis | fgrep vypis
00000000004004d0 T vypis
0000000000600888 D vypis_ptr
したがって、vypis
関数は「テキスト」セクションのvypis_ptr
グローバルであり、関数へのポインタである は「データ」セクションのグローバルです。
データ セクションのオブジェクトの値は実行可能ファイルに格納されておりvypis_ptr
、データ セクションをobjdump
.
$ objdump -d -j .data vypis
vypis: file format elf64-x86-64
Disassembly of section .data:
0000000000600878 <__data_start>:
...
0000000000600880 <__dso_handle>:
...
0000000000600888 <vypis_ptr>:
600888: d0 04 40 00 00 00 00 00 ..@.....
0000000000600890 <bla>:
600890: a8 08 60 00 00 00 00 00 ..`.....
ここで、値4004d0
が に格納されていることがわかりますが、これはの出力に表示されているvypis_ptr
の場所とまったく同じです。vypis
nm