推 LiloHuang: 用 nm 比較看看,CPP的版本應該會多出不少東西 XD 12/04 19:59
→ LiloHuang: 如果整個程式碼用 extern "C" {} 包住應該會很接近才是 12/04 20:02
→ LiloHuang: 我想 C++ 編譯器應該會多做 name mangling 的部分 12/04 20:03
推 chchwy: c++標準庫比C大多了. 12/04 22:33
推 littleshan: 因為g++會看副檔名,看到.c還是會用c compiler去編 12/04 22:40
→ littleshan: 唯一的差別是g++會多連結libstdc++ 12/04 22:40
→ littleshan: 你用 gcc rs.c -o rs -lstdc++ 出來大小就一樣了 12/04 22:41
推 LiloHuang: 我記得 g++ 的文件有寫,預設都會用 C++ compiler ... 12/04 23:08
→ LiloHuang: g++ is a program that calls GCC and treats `.c', 12/04 23:08
→ LiloHuang: `.h' and `.i' files as C++ source files instead of 12/04 23:09
→ LiloHuang: C source files unless -x is used. 12/04 23:09
推 littleshan: 噢,那是我弄錯了 12/05 00:35
其實我有反組譯看過, 的確是編出不同的組合語言, 只是我看不懂差異點。
ret_str() 用 g++ compiler 編出來的組合語言其實比較短, 但 main 的部份,
c 比較短。
我一直相信只使用和 c 一樣的部份, 用 c++ compiler 的程式碼應該和 c
一樣快, 還是這個例子並不符合這樣的條件。
※ 編輯: descent (114.39.169.73), 12/05/2014 11:06:36