推 atst2:受教了:) 感謝 02/23 15:44
推 abcdefghi:真實世界本來就不完美,效率的問題,C++有不足C的地方,C也 02/23 20:32
→ abcdefghi:有不足asm的地方,要在真實世界裡打滾,就只能機靈點,隨時 02/23 20:33
→ abcdefghi:依照遇到的問題改變做法,至少.cc裡可以用C/ASM,.c裡只能 02/23 20:34
→ abcdefghi:用C/ASM,.s裡卻只能用ASM,先用C++支撐整個framework最好 02/23 20:36
→ king19880326:abcdefghi 的問題只要懂 linking 就能解決, 跟你附檔 02/24 00:15
→ king19880326:名用什麼一點關係也沒有 02/24 00:15
→ king19880326:所以你的意思是如果一個 project 是用純c 寫得, 他就 02/24 00:16
→ king19880326:不能用到 c++ 的 library 嗎? 賣鬧阿 02/24 00:16
推 micola:abcdefghi說得沒錯 .c裡是c/asm...link c++ 也是link 02/24 01:16
推 micola:c 只是這個c wrapper可以轉呼叫c++ 02/24 01:19
→ king19880326:你所謂的inline assembly跟本就不是標準,是compiler 02/24 04:25
→ king19880326:提供的語法延伸,不需要把.cc裡面可以放c/c++/asm說 02/24 04:26
→ king19880326:的像是c++這個語言的恩賜 02/24 04:27
→ king19880326:micola可以先去查extern "C",name mangling的資料 02/24 04:30
→ king19880326:你的.c檔,.cc檔從linker的角度根本一點意義也沒有 02/24 04:31
→ king19880326:都是obj,只是symbol的差異而已 02/24 04:32
推 abcdefghi:不管inline asm是不是標準,但目前市面上的C++ compiler 02/24 10:53
→ abcdefghi:都有支援,發生有效率的問題,critical的部份一定是集中到 02/24 10:54
→ abcdefghi:同一個檔案來處理,在C的程式裡要呼叫C++,還得在C++程式 02/24 10:58
→ abcdefghi:包裝一層C API才能用,在C++裡呼叫C API根本沒這個問題, 02/24 11:00
→ abcdefghi:扯到linker真是扯太遠了,硬把symbol resolve掉,register 02/24 11:03
→ abcdefghi:裡的值是錯的,有什麼意義? 02/24 11:04
→ king19880326:register的值是錯的是calling convention的問題 02/24 23:24
→ king19880326:照你所謂的全部寫成.cc只要不同檔案用不同calling 02/24 23:25
→ king19880326:convention的編譯器編譯也會有此問題 02/24 23:25
→ king19880326:不需要把他扯進來,事實上 extern "C" 在同一個 02/24 23:26
→ king19880326:compiler 體系下差別往往只是name mangling 02/24 23:26
→ king19880326:所以講到linker一點都不為過 02/24 23:26
→ king19880326:事實上你的說法就是把C認為是C++的子集,所以我用C++ 02/24 23:27
→ king19880326:寫我超強的方式在思考 02/24 23:27
→ king19880326:但其實不是,去看看VLA吧,他只是C++ 的condition 02/24 23:27
→ king19880326:feature, 你用這種方式去選擇語言根本就是搞笑 02/24 23:28
推 abcdefghi:亂扯一通,你喜歡用C linking C++的方式,隨你便吧!光看到 02/25 00:12
→ abcdefghi: "我用C++寫我超強的方式在思考" 就完全不想理你了! 02/25 00:12