2013-02-18 87 views
0

對於我的CPS類,本學期我們將從C++過渡到C。對於我的C++,我越來越依附於xCode,它是快速而簡單的調試器。但是,對於C來說,xCode讓我做很多C++,我不應該允許在C中做這些事情。在Xcode 4.6中使用gcc

例如,我可以初始化並從循環內聲明一個循環變量,它不是允許C.

C:

int i 
for(i = 0; i < 100; i++) 
{ 
    printf("This is a number: %i", i); 
} 

但允許C++ C++:

for(int i = 0; i < 100; i++) 
{ 
    printf("This is a number: %i", i); 
} 

我所有的工作已經到實驗室機器上編譯(運行Linux和編譯與gcc)爲了它的數量,所以我正在尋找一種方法來繼續使用xCode運行我的程序與gcc(或至少是不會讓我做C++的東西)。看來xCode已經不再支持gcc了。無論如何,我仍然可以繼續使用xCode,但是它已經以「老派」的學校方式進行編譯,所以它會捕獲這樣的東西?

現在我一直在使用sublime2,只是在終端編譯。現在是好的,但是當涉及到調試時,我已經在使用xCode這麼長時間後對gdb產生了仇恨。

+0

從[C99標準](http://en.wikipedia.org/wiki/C99)開始,在循環中聲明'i'在C中是合法的。 – 2013-02-18 03:59:14

+0

@KurtRevis,這就是我害怕的,我們必須在我們的實驗室機器上使用舊版C標準卡住。不知何故gcc不喜歡這個。我只需要在兩者之間跳躍,並根據需要找出差異。謝謝你的提示。 – tknickman 2013-02-18 04:01:35

+2

除非你的實驗機器真的是古老的,你可以使用'-std = c99'(或'-std = gnu99'用於C99和GNU擴展)在它們上調用gcc。如果您不確定您的班級是否允許,請與您的導師談談。也許他會很高興,或者你可以說是時候開始使用14歲的語言版本,而不是24歲的版本。 :) – rickster 2013-02-18 04:11:54

回答

1

您可以使用-std參數tell clang what dialect of C to use編譯器。這聽起來像你可能想要-std=c89-std=gnu89

在Xcode中,在您的項目或目標的構建設置中,將「C語言方言」設置爲任何你想要的。

我不會指望這一切,但它應該讓你更接近。