[爆卦]編譯c是什麼?優點缺點精華區懶人包

為什麼這篇編譯c鄉民發文收入到精華區:因為在編譯c這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者descent (「雄辯是銀,沉默是金」)看板C_and_CPP標題[問題] c++ 編譯出來的...

編譯c 在 歪歪 Instagram 的最佳解答

2021-08-02 19:04:29

/「大一必修」 這都是我們學校的大一必修,每個學校的課程內容、難度都不一定,所以大家參考就好🥸,準確的資訊還是建議上dcard校版詢問,或者是等友直屬學長姊後再詢問他們哦!如果有興趣也可以用課程後面的英文去搜尋,應該是可以找到不少的資源以及原文課本,可以稍微先預習看看(我本人是沒有預習啦,暑假還...


typedef struct Str_
{
char c;
int a;
}Str;

Str ret_str()
{
Str str;

str.c='a';
str.a=1;

return str;
}

int main(int argc, char *argv[])
{
Str s;

s = ret_str();

s.c='c';
s.a=5;

return 0;
}

descent@debianlinux:return_struct$ gcc rs.c -o rs
descent@debianlinux:return_struct$ g++ rs.c -o rscpp
descent@debianlinux:return_struct$ ls -l rs rscpp
-rwxr-xr-x 1 descent descent 4912 Dec 4 19:47 rs
-rwxr-xr-x 1 descent descent 5128 Dec 4 19:47 rscpp

我一直以為這樣的程式用 c++ compiler 編出來應該要和 c compiler
的大小一樣。

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
LiloHuang: http://goo.gl/9QRrzC 官方文件出處 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

你可能也想看看

搜尋相關網站