青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-20  評(píng)論-0  文章-0  trackbacks-0

gcc和g++都是GNU(組織)的一個(gè)編譯器。

誤區(qū)一:gcc只能編譯c代碼,g++只能編譯c++代碼
兩者都可以,但是請(qǐng)注意:
1.后綴為.c的,gcc把它當(dāng)作是C程序,而g++當(dāng)作是c++程序;后綴為.cpp的,兩者都會(huì)認(rèn)為是c++程序,注意,雖然c++是c的超集,但是兩者對(duì)語法的要求是有區(qū)別的。C++的語法規(guī)則更加嚴(yán)謹(jǐn)一些。
2.編譯階段,g++會(huì)調(diào)用gcc,對(duì)于c++代碼,兩者是等價(jià)的,但是因?yàn)間cc命令不能自動(dòng)和C++程序使用的庫聯(lián)接,所以通常用g++來完成鏈接,為了統(tǒng)一起見,干脆編譯/鏈接統(tǒng)統(tǒng)用g++了,這就給人一種錯(cuò)覺,好像cpp程序只能用g++似的。
 
誤區(qū)二:gcc不會(huì)定義__cplusplus宏,而g++會(huì)
實(shí)際上,這個(gè)宏只是標(biāo)志著編譯器將會(huì)把代碼按C還是C++語法來解釋,如上所述,如果后綴為.c,并且采用gcc編譯器,則該宏就是未定義的,否則,就是已定義。
 
誤區(qū)三:編譯只能用gcc,鏈接只能用g++
嚴(yán)格來說,這句話不算錯(cuò)誤,但是它混淆了概念,應(yīng)該這樣說:編譯可以用gcc/g++,而鏈接可以用g++或者gcc -lstdc++。因?yàn)間cc命令不能自動(dòng)和C++程序使用的庫聯(lián)接,所以通常使用g++來完成聯(lián)接。但在編譯階段,g++會(huì)自動(dòng)調(diào)用gcc,二者等價(jià)。

gcc和g++的區(qū)別

我們?cè)诰幾gc/c++代碼的時(shí)候,有人用gcc,有人用g++,于是各種說法都來了,譬如c代碼用gcc,而c++代碼用g++,或者說編譯用 gcc,鏈接用g++,一時(shí)也不知哪個(gè)說法正確,如果再遇上個(gè)extern "C",分歧就更多了,這里我想作個(gè)了結(jié),畢竟知識(shí)的目的是令人更清醒,而不是更糊涂。
 
誤區(qū)一:gcc只能編譯c代碼,g++只能編譯c++代碼

兩者都可以,但是請(qǐng)注意:
1.后綴為.c的,gcc把它當(dāng)作是C程序,而g++當(dāng)作是c++程序;后綴為.cpp的,兩者都會(huì)認(rèn)為是c++程序,注意,雖然c++是c的超集,但是兩者對(duì)語法的要求是有區(qū)別的,例如:
#include <stdio.h>
int main(int argc, char* argv[]) {
   if(argv == 0) return;
   printString(argv);
   return;
}
int printString(char* string) {
  sprintf(string, "This is a test.\n");
}
如果按照C的語法規(guī)則,OK,沒問題,但是,一旦把后綴改為cpp,立刻報(bào)三個(gè)錯(cuò):“printString未定義”;
“cannot convert `char**' to `char*”;
”return-statement with no value“;
分別對(duì)應(yīng)前面紅色標(biāo)注的部分。可見C++的語法規(guī)則更加嚴(yán)謹(jǐn)一些。
2.編譯階段,g++會(huì)調(diào)用gcc,對(duì)于c++代碼,兩者是等價(jià)的,但是因?yàn)間cc命令不能自動(dòng)和C++程序使用的庫聯(lián)接,所以通常用g++來完成鏈接,為了統(tǒng)一起見,干脆編譯/鏈接統(tǒng)統(tǒng)用g++了,這就給人一種錯(cuò)覺,好像cpp程序只能用g++似的。
 
誤區(qū)二:gcc不會(huì)定義__cplusplus宏,而g++會(huì)

實(shí)際上,這個(gè)宏只是標(biāo)志著編譯器將會(huì)把代碼按C還是C++語法來解釋,如上所述,如果后綴為.c,并且采用gcc編譯器,則該宏就是未定義的,否則,就是已定義。
 
誤區(qū)三:編譯只能用gcc,鏈接只能用g++

嚴(yán)格來說,這句話不算錯(cuò)誤,但是它混淆了概念,應(yīng)該這樣說:編譯可以用gcc/g++,而鏈接可以用g++或者gcc -lstdc++。因?yàn)間cc命令不能自動(dòng)和C++程序使用的庫聯(lián)接,所以通常使用g++來完成聯(lián)接。但在編譯階段,g++會(huì)自動(dòng)調(diào)用gcc,二者等價(jià)。
 
誤區(qū)四:extern "C"與gcc/g++有關(guān)系

實(shí)際上并無關(guān)系,無論是gcc還是g++,用extern "c"時(shí),都是以C的命名方式來為symbol命名,否則,都以c++方式命名。試驗(yàn)如下:
me.h
extern "C" void CppPrintf(void);
 
me.cpp:
#include <iostream>
#include "me.h"
using namespace std;
void CppPrintf(void)
{
     cout << "Hello\n";
}
 
test.cpp:
#include <stdlib.h>
#include <stdio.h>
#include "me.h"        
int main(void)
{
    CppPrintf();
    return 0;
}
 
1. 先給me.h加上extern "C",看用gcc和g++命名有什么不同

[root@root G++]# g++ -S me.cpp
[root@root G++]# less me.s
.globl _Z9CppPrintfv        //注意此函數(shù)的命名
        .type   CppPrintf, @function
[root@root GCC]# gcc -S me.cpp
[root@root GCC]# less me.s
.globl _Z9CppPrintfv        //注意此函數(shù)的命名
        .type   CppPrintf, @function
完全相同!
               
2. 去掉me.h中extern "C",看用gcc和g++命名有什么不同

[root@root GCC]# gcc -S me.cpp
[root@root GCC]# less me.s
.globl _Z9CppPrintfv        //注意此函數(shù)的命名
        .type   _Z9CppPrintfv, @function
[root@root G++]# g++ -S me.cpp
[root@root G++]# less me.s
.globl _Z9CppPrintfv        //注意此函數(shù)的命名
        .type   _Z9CppPrintfv, @function
完全相同!
posted on 2008-04-14 15:42 Magic 閱讀(342) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲另类一区二区| 欧美性猛交xxxx免费看久久久| 久久久久久久久久久一区| 中日韩高清电影网| 99在线视频精品| 一本一本久久| 午夜在线一区| 美女视频黄免费的久久| 欧美激情欧美狂野欧美精品 | 亚洲人人精品| 亚洲视频视频在线| 久久福利毛片| 亚洲黄一区二区| 一区二区av| 亚洲小说欧美另类社区| 久久av老司机精品网站导航| 久久免费高清视频| 欧美婷婷六月丁香综合色| 黑人一区二区| 亚洲视频在线免费观看| 久久精品国产综合精品| 久久久亚洲欧洲日产国码αv | 亚洲精品免费在线观看| 亚洲午夜精品久久久久久app| 亚洲专区国产精品| 麻豆成人精品| 国产精品一二| 亚洲激情一区二区| 午夜精品福利视频| 欧美成人精品不卡视频在线观看| 亚洲精品中文字幕有码专区| 亚洲综合首页| 欧美精品一区二区三区一线天视频 | 亚洲三级毛片| 欧美中文在线视频| 欧美日韩精品二区第二页| 国产日韩综合| 亚洲自拍高清| 最新国产成人在线观看| 久久精品视频网| 国产精品影片在线观看| 亚洲网友自拍| 亚洲日本精品国产第一区| 久久久久久91香蕉国产| 蜜乳av另类精品一区二区| 亚洲调教视频在线观看| 另类激情亚洲| 国产一区免费视频| 性色av一区二区三区红粉影视| 免费久久精品视频| 欧美亚洲视频在线观看| 国产精品美女久久久久aⅴ国产馆| 亚洲国产精品一区二区久| 久久福利视频导航| 亚洲男人影院| 国产精品一区二区你懂得 | 亚洲精品黄网在线观看| 另类欧美日韩国产在线| 性欧美大战久久久久久久久| 日韩小视频在线观看| 久久久久一区| 欧美精品久久久久久久免费观看| 亚洲国产精品黑人久久久| 久久香蕉国产线看观看av| 久久国产精品一区二区三区| 国产一区视频网站| 中文国产一区| 亚洲日本在线观看| 久久亚洲私人国产精品va媚药| 亚洲精品视频二区| 蜜桃久久av一区| 久久国产日韩| 亚洲激情欧美| 欧美精品成人在线| 亚洲国产日本| 亚洲精品久久久久久下一站 | 亚洲欧美网站| 欧美在线看片| 一区二区av在线| 国产麻豆精品在线观看| 国产精品久久久一本精品| 亚洲国产色一区| 亚洲美女视频| 性欧美18~19sex高清播放| 国产精品www色诱视频| 免费在线欧美视频| 狼人天天伊人久久| 久久午夜av| 日韩一区二区精品在线观看| 一本大道久久精品懂色aⅴ| 国产精品v日韩精品v欧美精品网站| 99国产精品久久久| 亚洲欧美另类国产| 亚洲高清视频的网址| 亚洲精品美女在线观看播放| 国产精品高潮呻吟| 美日韩免费视频| 欧美日韩精品不卡| 久久中文久久字幕| 欧美性事免费在线观看| 久久久视频精品| 欧美片在线观看| 久久婷婷国产麻豆91天堂| 亚洲人成亚洲人成在线观看 | 亚洲一区二区三区在线视频| 亚洲国产欧美一区| 日韩香蕉视频| 99人久久精品视频最新地址| 久久久久一区| 亚洲人成亚洲人成在线观看| 影音先锋亚洲精品| 久久综合婷婷| 欧美成人午夜影院| 国产在线日韩| 开心色5月久久精品| 麻豆亚洲精品| 亚洲精品无人区| 欧美日韩精品在线| 亚洲自拍偷拍色片视频| 欧美一区二区三区视频| 亚洲国产一区在线观看| 国产精品九九| 久久艳片www.17c.com| aa级大片欧美三级| 葵司免费一区二区三区四区五区| 亚洲狠狠丁香婷婷综合久久久| 欧美黄色小视频| 亚洲欧美日韩成人高清在线一区| 另类天堂av| 欧美中文字幕| 一区二区日韩精品| 日韩视频二区| 欧美人与性禽动交情品| 亚洲欧美另类在线| 国产欧美一区二区精品仙草咪| 亚洲人成网站777色婷婷| 亚洲综合好骚| 欧美一区二区福利在线| 亚洲精品久久嫩草网站秘色| 欧美区在线观看| 亚洲综合视频在线| 亚洲国产欧美一区| 久久全国免费视频| 日韩视频一区| 在线视频一区二区| 亚洲男女毛片无遮挡| 午夜精品短视频| 亚洲国产精品视频| 久久av一区二区三区| 欧美一区二区三区免费视频| 在线一区观看| 久久国产夜色精品鲁鲁99| 亚洲欧美国产不卡| 亚洲在线观看免费| 亚洲一区高清| 老色鬼精品视频在线观看播放| 销魂美女一区二区三区视频在线| 亚洲精品中文字幕在线| 亚洲视频碰碰| 女同性一区二区三区人了人一 | 亚洲福利av| 久久人人爽爽爽人久久久| 夜夜爽av福利精品导航| 亚洲国产成人porn| 亚洲影音一区| 美女诱惑黄网站一区| 国产精品国产三级国产普通话蜜臀| 欧美私人网站| 亚洲国产精品成人va在线观看| 夜夜嗨网站十八久久| 亚洲在线成人精品| 欧美在线视频观看免费网站| 亚洲无线观看| 伊伊综合在线| 激情丁香综合| 亚洲精品国产欧美| 老司机午夜精品| 欧美黄色成人网| 亚洲国产精品视频| 亚洲一级片在线看| 亚洲一二三区在线| 国产精品国产三级国产专播精品人| 亚洲午夜在线观看| 久久久噜噜噜久久狠狠50岁| 亚洲另类一区二区| 日韩亚洲精品在线| 欧美一区二区在线看| 亚洲国产精品欧美一二99| 国产麻豆日韩| 欧美日韩免费看| 美女爽到呻吟久久久久| 欧美freesex8一10精品| 国产欧美日本| 裸体素人女欧美日韩| 免费不卡在线观看| 久久精品视频免费| 欧美成人午夜剧场免费观看| 亚洲第一主播视频| 亚洲激情电影中文字幕| 欧美午夜视频一区二区|