2010-10-30 38 views
6

我很欣賞這些差異是微不足道的,但我做了一些數字運算,所以我想用C.我在VS2010中創建了一個項目,選擇了一個C++項目並編寫了一些C.執行得很好,但是在VS2010上編寫Visual C++中的C代碼

是在快速(er)C編譯器還是C++中創建並執行它,因爲它是一個C++項目?

我該如何指定我希望編寫的代碼實際上是C並被編譯並作爲C運行?

回答

8

Visual Studio C++編譯器會將所有.c文件視爲C語言文件並按照這些文件進行編譯。

附加參考:

默認情況下,Visual C++編譯 對待,在.c結尾的所有文件爲C 源代碼,並且在 的.cpp作爲C++源代碼結尾的所有文件。要強制 編譯器將所有文件視爲C ,而不考慮文件擴展名,請使用 /Tc編譯器選項。

http://msdn.microsoft.com/en-us/library/bb384838.aspx

+1

+1關於/ Tc編譯器選項,我覺得我應該已經知道了...... – 2010-10-30 23:44:26

0

你只是不懂事了。 C不能保證以任何方式比C++更快 - 它最終都被編譯爲本地機器指令。如果你想要一個真正的性能飛躍,你應該使用另一個編譯器,例如英特爾,或者使用GPU或類似的東西。

0

實際上會給你更多的速度是使用英特爾的編譯器,它可以作爲插件使用。真實世界的差異很大,特別是對於數字運算。 C和C++之間的區別是可疑的。

下面是一個良好的開端:link text

既然你的數字運算,你應該考慮使用SIMD擴展,如果可能的話。在英特爾編譯器上使用SIMD,而不是直接MS C編譯代碼,會給你帶來一些收穫。

+0

正如Alex所說,GPU是另一種選擇。您可以在這裏使用OpenCL或微軟的Direct Compute。至於速度,使用正確的GPU,您可以在PC上進入超級計算領域。 – IamIC 2010-10-31 00:29:16

相關問題