[c++] 是不是說“C / C ++”錯了?



7 Answers

請記住,C ++的原始實現僅僅是為“真正的”編譯器輸出C代碼的預編譯器。 所有C ++概念都可以在普通的C中手動編碼(但不是編譯器強制的)。

引用編譯器和其他語言/編程工具時,“C / C ++”也是有效的。 幾乎每個可用的C ++編譯器都可以編譯,因此被稱為“C / C ++”編譯器。 大多數人可以選擇是基於擴展名處理.C和.CPP文件,還是將它們全部編譯為C或全部編譯為C ++。

還要注意,在第一個C / C ++編譯器中,可以在單個編譯器項目中混合使用C和C ++源代碼。 這可能是模糊語言之間界限的關鍵因素。

為C ++創建的許多語言/編程工具也適用於C語言,因為語言語法實際上是相同的。 許多語言工具都有單獨的Java,C#,Python版本 - 但是由於相似性很強,它們有一個適用於C和C ++的“C / C ++”版本。

Question

我已經看到了很多關於使用不恰當的表達“C / C ++”的問題。 我認為的原因是:

  • 新手C和C ++程序員可能不了解這兩種語言之間的區別。
  • 人們並不關心它,因為他們想要一個通用的,快速的,“臟”的答案

雖然C / C ++有時可以解釋為“C或C ++”,但我認為這是一個很大的錯誤。 C和C ++提供了不同的編程方法,即使C代碼可以很容易地在C ++程序中實現,我認為用單一表達式(C / C ++)引用兩種單獨的語言是錯誤的。

無論如何,一些問題可以被認為是C或者C ++。 你怎麼看待這件事?




我傾向於把C / C ++放在我的問題中。

通常我正在尋找可以在我的c ++應用程序中使用的東西。

如果代碼是C或C ++,那麼我可以使用它,所以我寧願不只是限制可能的答案之一。




無論誰問這個問題,都應該根據問題編寫C,C ++或C / C ++。

從我所看到的,你可以用C ++或C ++方式編寫C ++代碼。 兩者都可以工作,但從長遠來看,C編寫的不是C風格的代碼通常更容易維護。

最後,這一切都取決於具體的問題。 如果有人問如何連接字符串,那麼他是否需要C或C ++解決方案是非常重要的。 或者,另一個例子,如果有人要求qsort算法。 為了支持不同的類型,你可能想要使用C和C ++的模板等。




C / C ++通常意味著一種編程風格,就像C和類,或者C和STL :-)技術上它是C ++,但是使用它的最小優點。




我自己使用這個術語,這是因為這是我的風格,我不使用boost,stl或其他的東西,甚至沒有標準的C ++庫,如“cout”和“cin”,我編程C但使用類,模板和其他(非庫)功能對我有利。

我可以說我不是C的掌握者,也不是C ++的掌握者,但我十多年前就非常擅長那種特殊的風格。 (而且我還在改進!)







我認為這是更多的第二個答案 - 他們想要的東西很容易集成到他們的項目。

雖然C的答案可能不是慣用的C ++(反之亦然),但我認為這是C ++的一大賣點 - 基本上可以嵌入C。 如果一個慣用的答案是重要的,他們總是可以用STL / C ++來指定C / C ++ / C ++和boost / etc。

lisp的一個答案將是非常不可用的。 但是C或者C ++的答案都是可以直接使用的。




這兩種語言是截然不同的,但它們有很多共同之處。 很多C代碼會在C ++編譯器上編譯得很好。 在早期的學生層面,很多C ++代碼仍然可以在C編譯器上工作。

請注意,在某些情況下,兩種編譯器之間代碼的含義可能會有微妙的差別,但是我認為在某些情況下甚至在不同品牌的C ++編譯器之間也是如此,如果您愚蠢到只能依賴未定義的或有爭議的一致行為。




Related



Tags

c++ c++   c