十年老程序猿!碰巧,3門語言都比較熟悉!來說說我的看法!
C語言
C語言,是我入門的編程語言,因為我是計算機專業。
C語言,貼近硬件底層,面相過程,語法特性相對較少,語法相對簡單。
但是因為貼近底層,比較難入門,難精通,尤其是指針(二級指針,函數指針,指針函數。。。),讓無數人折腰!
C++
正好也是我大學的課程!工作之后,也一直是主力語言在用。
C++是C語言的超集,支持C語言全部特性。然后加入面向對象的特性,功能比C語言更強大。
但是由于新特性的加入,導致復雜度變高,入門更難,執行效率相比C語言有所下降(相對于其他編程語言,還是最快的梯隊)。
C++還有一個讓人詬病的地方,就是編譯速度慢!一個大型模塊,編譯幾分鐘是常事!
C#
C#(讀作CSharp)則屬于后起之秀,屬于非?,F代的編程語言,集很多編程語言的優點于一身,除了C和C++,還吸納了Java等語言的很多優點。
同時C#又比較適合入門,雖然他博采眾長,但是復雜度并不高,對語法做了簡化,引入眾多語法糖,程序看起來很優雅簡潔;C#對內存管理進行簡化,取消了指針,自動管理大部分內存。這些對新手入門,很友好。
此外,C#的編譯速度非常快,比C++快幾個數量級,基本上是秒編譯!
當然,C#的短板就是執行效率相對較低,因為他采用了類似Java的解釋執行的機制。同時代碼安全性很低,很容易進行反編譯。所以在很多應用當中,會和C或者C++進行結合,底層對效率或安全性要求較高的,使用C或者C++實現,然后供C#調用。而上層業務,則采用C#快速實現。
總結來說,如果你剛入門,選C#會比較容易。如果你對代碼效率和安全性要求很高,則選C或者C++。當然,如果是嵌入式等底層開發,C是首選。