程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 學C/C++的理由,學c理由

學C/C++的理由,學c理由

編輯:C++入門知識

學C/C++的理由,學c理由


  大家好 , 我的英文名是Vencily , 高中學歷 , 體育特長生 , 是個懶貨 , 寫作水平真的是不咋地 . 然而這篇不算文章的文章是我的'處男'作.^_^

  我太懶了, 希望能用博客園這個平台和大家的關注來約束自己增強約束力 , 提高自己的寫作能力 , 增長自己的技術水平 .

  在技術方面 , 目前本人是渣渣 , 僅僅會用C#做網站 , 用C#寫桌面應用程序 , 用C#玩游戲 .

  自學過幾個月的X86匯編 , 還有C語言 . 但是學的系統 , 也沒做什麼筆記 , 該忘的都忘掉了 .

  一直聽說C/C++主要是30歲以上的人干的 , 並且薪資特別高( 有多高也不清楚 , 但是一定比dotnet要高 ) . 因為C#語法底層是用C/C++封裝的 , 所以真正的C/C++高手 , 能寫出屬於自己的並且沒多少漏洞的語法 , 用自己寫的語法去實現操作系統 / 游戲 / 外掛 / 桌面程序 / 硬件程序 , 甚至網站等 , 高手用C/C++寫的底層一定比C#寫的底層的執行效率好 , 雖然寫底層在時間方面C#要比C/C++好 , 不過主要是看個人需要/公司需要 . 這就可以從側面反射出C/C++人才的薪資 , 這種人不好招 , 招到的相對我來說都是工資非常高的 .

  說說C#吧 , C#在我個人看來完全是為了有一份工作 . 都不用了解計算機原理的 . 用起來相當愉快 , 但是感覺上有一種 ' 有才能用 , 沒的就沒轍 ' , 就是因為這種感覺讓我對C/C++產生了興趣 , 據說喜歡用C/C++的人是灰常喜歡掌控 , 然而我就是 , 具體怎麼掌控 , 相信在以後的博文中可以展現 .

  再說說匯編吧 , 匯編在我的感覺上 , 非常難用 , 但是匯編在執行效率方面僅僅次於機器語言 , 因為計算機只認識01 , 匯編和各種01指令是一一對應的 , 不會和C#那樣 , 轉換為微軟中間語言 , 又轉換為C語言 , 然後再轉換為相應CPU的匯編語言 , 再轉換為01 . 效率方面顯而易見 . 

  說到效率 , 就不得不說現在的機器 . 都特麼的動不動就是四核八核 , 需求少且不多的就沒必要玩C/C++了 .

    舉個例子 : 行走1米的路和跑1米的路差別大嗎?答案很顯然,不就是0.0幾秒的問題麼 .

         計算的CPU也一樣 , 四核八核處理幾千行C/C++代碼和1萬行C#代碼是差別不大的 , 當然前提是數據一樣多(不說各種特殊情況 , 別抓話腳噴我哈 , 寫篇廢話的文章都不容易 , 我是花心血來寫的 , 不喜歡的就看下別人寫的 , 但是你覺得是寫錯了的話 , 還請指出 , 哪怕是噴我 , 本人都是衷心感謝!) . 

  C/C++主要用來寫硬件程序和桌面應用程序還有大型的游戲 .

  為什麼不用C/C++做網站 ? 不是不能做啊 , 據說WEB環境很難搞 . 並且C/C++寫的程序是編譯程序 , 不適合維護 , 至於為什麼 , 後續會揭曉 . C#是解析語言 , 很多人說C#是編譯語言 , 我卻不這麼認為 , 我只知道反編譯生成的dll不是二進制 .

  由於在此之前我是學C#的 , 經常有些人會問到一些C#很偏的問題 , 有時候我猜錯了也有時候我直接回答不會 . 因為我覺得那些很偏的底層的可以玩C/C++去 , 沒必要去玩一個不能很好擴展的語言 , 學C# , 很明白的和大家說 , 我只是為了工作 和只學一些常用的知識 . 

  本人文采不好 , 寫的挺亂 , 相信大家看了也辛苦 , 不過 , 誰叫我懶呢. 以後一天會寫一篇(特殊情況除外) , 希望大家能跟我一起進步和學習交流 . 謝謝大家 !

 

  下面為大家擴展下編譯語言和解析語言 : (轉自百度知道)

  高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可
將它們分為兩類:
  1.解釋類:執行方式類似於我們日常生活中的“同聲翻譯”,應用程序源代碼一邊由
相應語言的解釋器“翻譯”成目標代碼(機器語言),一邊執行,因此效率比較低,而且不
能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可
以動態地調整、修改應用程序,典型的解釋型的高級語言有BASIC。
  2.編譯類:編譯是指在應用源程序執行之前,就將程序源代碼“翻譯”成目標代碼
(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。
但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(*.OBJ)才
能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型
的,例如Visual C++、Delphi等。
高級語言裡一個程序的編譯和執行大概是 下面的情況:
編譯器將高級語言從源代碼翻譯成與之等價的目標程序(就相當於從中文翻譯成中文),而後就隱退了。在隨後的某個時刻,
用戶啟動目標程序由操作系統執行。實現高級語言的另外一種方式為解釋:
與編譯不同的是,解釋器在目標程序(其實根本就沒有目標程序,只是與編譯來對比)執行期間,解釋器一直隨之運行
。這種執行過程完全由解釋器控制的。從效果上看,解釋器實現了一台“虛擬計算機”,其“機器語言”就是高級語言,解釋器一次讀入一條或多條語句
,按照其自身規定的方式去執行相應的操作。一般說來,解釋比編譯有著很好的靈活性;編譯一般有著較好的性能。但是有些語言確是采用了兩者的混合形式:
書中的原文:”如果初始階段的翻譯器比較簡單,我們就說這個語言是“解釋的”。如果翻譯器很復雜,我們就說這一語言是“編譯的”。現在兩者的區分變得有些模糊了,因為“簡單”和“復雜”都是修飾性術語,也因為完全可能出現用一個編譯器(復雜的翻譯過程)生成代碼,而後又由一個復雜的虛擬機(解釋器)執行。對於最後這種情況,如果翻譯器對程序做了徹底的分析(而不是做某種“機械的”變換),而且有關的中間語言程序與源程序並沒有很強的相似性,我們還是說這個語言是編譯的。這兩種特性----徹底的分析和非平凡的變換-----是刻畫編譯方式的標志性特征。“

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved