2010-06-28 158 views
3

我希望學習C語言,這樣我就可以理解許多主要編程語言背後的概念,而不需要C++擁有的快捷方式或Java擁有的垃圾收集器。我計劃學習C然後去C++,目前我正在學習計算機科學。Visual C++ 2008 Express Edition可以編譯C源代碼嗎?

在任何情況下,我想知道Windows機器的Visual C++ 2008 Express Edition編譯器是否可以編譯C源代碼。我會這樣想,因爲你可以將C實現爲C++。 但是,當我嘗試創建文件時,沒有C選擇。我可以創建頭文件,但我不確定C或C++需要哪些文件。我知道最少的信息。

如果我不能使用該編譯器編譯C,是否有另一個編譯器可以編譯C?

謝謝。

回答

1

只需重命名文件「.c」,它將以「C」模式編譯。

或右鍵單擊項目選擇屬性。然後導航到配置屬性 - > C/C++ - >高級,並將「編譯爲」設置爲「編譯爲C代碼(/ TC」)。括號內的位是命令行開關,如果你想使用它。

+0

謝謝:)這些很容易遵循指示,我輕鬆地更改設置。 – Rick 2010-06-28 13:45:32

1

是的,你可以。

如果您給源文件「.c」的擴展名,它將被編譯爲C代碼。

您還可以在項目選項(對於整個項目)或文件選項(對於某個文件)中指定編譯模式(C或C++)。

5

如果將其保存爲.c擴展名,它將以C89的方言編譯源代碼。

它不會編譯C99。

+0

imho最有用的答案 – Hinek 2010-06-28 13:43:26

1

不是問題,VC有一個C89兼容的C編譯器。它會自動檢測文件擴展名中的語言,.c文件將被編譯爲C.或者通過右鍵單擊文件Properties,C/C++,Advanced,Compile As =/TC來強制執行。避免這種情況。

當您開始使用Win32控制檯應用程序項目模板時,您需要進行一些更改。該模板的設計假設您使用C++。用鼠標右鍵單擊stdafx.cpp,重命名爲stdafx.c。重複該項目的.cpp文件。現在一切都將被編譯爲C,包括對預編譯頭文件的支持。

有什麼可以說是從C++開始馬上btw。也許是另一個問題的好主題。

+0

如果我從C++開始,我就不會明白C++自動執行的幕後會發生什麼。我也沒有以前的編程經驗,所以這會幫助我理解程序需要的例程。我認爲。 – Rick 2010-06-28 13:47:39

+1

我不想用十英尺的杆子碰這個,但是假設C將有助於學習C++,這是值得懷疑的。他們是非常不同的語言。正如我所說,開始一個新的問題。 – 2010-06-28 13:57:43

-1

值得一提的是,您應該能夠將C代碼編譯爲C++而不會出現任何問題。如果你使用外部代碼,你可能會遇到問題,因爲C++編譯器會使用不同的調用約定(和名稱改變),但如果你只是使用自己的代碼,這應該不成問題。

+0

不,您可以用非慣用的方式編寫C的特定子集,C++將編譯它,但一般來說,任何具有動態內存的C代碼都會利用C的弱類型系統,而不是C++的僵硬類型系統需要的類型。 – 2010-06-29 07:41:09

+0

恩,所以你低估了我是因爲C++需要從malloc顯式投射嗎? – Dolphin 2010-06-29 14:22:57

相關問題