那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

幾種主流的C語言開發環境

單片機與嵌入式 ? 來源:單片機與嵌入式 ? 2024-01-22 14:26 ? 次閱讀

C語言不僅是IT的必修課,也是所有理工科、甚至所有專業的必修課。它具有簡潔緊湊、靈活方便、適用范圍大、可移植等優點,是應用最為廣泛的一種高級程序設計語言。

計算機語言概述

計算機語言是用于人與計算機間通信的語言,為使計算機進行各種不同的工作,就需要有一種專門用來編寫計算機程序的字符、數字和語法規則,而這些規則構成計算機的指令。計算機語言分機器語言、匯編語言和高級語言3種,下面將分別進行詳細講解。

機器語言

計算機工作基于二進制,它只能識別和接受由1和0組成的指令,其中1表示通電,0表示斷電,這種計算機能直接識別和接受的二進制代碼稱為機器指令。機器指令的集合就是該計算機的機器語言,機器語言具有靈活、直接執行和速度快等特點。不同型號的計算機其機器語言是不相通的,按照一種計算機的機器指令編制的程序,不能在另一種計算機上執行。因此用機器語言編寫程序,編程人員要首先熟記所用計算機的全部指令代碼和代碼的涵義。而且,編寫出來的程序都是0和1的指令代碼,直觀性差,容易出錯。因此只有極少數的計算機專業人員會學習和使用機器語言,絕大多數的程序員不再學習機器語言。

匯編語言

盡管機器語言對計算機來說很好懂也很好用,但是對于編程人員來說,記住0和1的組成的指令簡直就是煎熬,為了解決機器語言的難記憶問題,匯編語言誕生了,它用簡潔的符號串或字母來替代不易記憶的機器語言,而計算機識別不了符號串,這就需要一個將 這些符號翻譯成機器語言的程序,把這種程序稱為匯編程序。匯編程序里一條指令只能對應實際操作中的一個很細小的動作,例如自增、移動,所以匯編源程序一般比較繁長、易出錯,并且使用匯編語言編程需要有扎實的計算機知識,才能編出高質量代碼。

C語言

絕大數編程者喜歡高級語言,它簡化了程序中的指令、略去了很多細節,并且與計算機的硬件關系不大,更利于程序員編程。此外,高級語言經歷了結構化程序設計和面向對象程序設計,使得程序可讀性、可靠性、可維護性都增強。常見的高級語言包括VB、C、C++JavaC#Python等等。

在C語言誕生以前,系統軟件主要是用匯編語言編寫的,由于匯編語言程序依賴于計算機硬件,其可讀性和可移植性都極差,一般的高級語言又難以實現對計算機硬件的直接操作(這正是匯編語言的優勢),于是人們迫切希望有一種兼有匯編語言和高級語言特性的新語言,C語言就在這種需求下應運而生。

C語言的發展頗為有趣。它的原型ALGOL 60語言,也稱為A語言。

1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。

1967年,劍橋大學的馬丁·理查茲(Matin Richards)對CPL語言進行了簡化,于是產生了BCPL語言。

1970年,美國貝爾實驗室的肯·湯普森(Ken Thompson)將BCPL進行了修改,并為它起了一個有趣的名字“B語言”,其含義是將CPL語言煮干,提煉出它的精華,并且他用B語言寫了第一個UNIX操作系統

1973年,美國貝爾實驗室的丹尼斯·里奇(Dennis M.Ritchie)在B語言的基礎上設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,即C語言。

1978年,布賴恩?凱尼漢(Brian W.Kernighan)和丹尼斯·里奇(Dennis M.Ritchie)出版了名著《The C Programming Language》,從而使C語言成為目前世界上流傳最廣泛的高級程序設計語言。

早期的C語言主要是用于UNIX系統,由于C語言的強大功能和各方面的優點逐漸為人們認識。到了八十年代,C開始進入其它操作系統,并很快在各類大、中、小和微型計算機上得到了廣泛的使用,成為當代最優秀的程序設計語言之一。

隨著微型計算機的日益普及,出現了許多C語言版本。由于沒有統一的標準,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標準學會(ANSI)于1989年為C語言制定了一套ANSI標準,即C語言標準ANSI X3.159-1989,被稱為C89。之后在1990年,國際標準化組織ISO也接受了同樣的標準ISO9899-1990,該標準被稱為C90。這兩個標準只有細微的差別,因此,一般而言C89和C90指的是同一個C語言標準。在ANSI標準化發布了C89標準以后,C語言的標準在一段相當的時間內都保持不變,直到1999年ANSI通過了C99標準,C99標準相對C89做了很多修改,增加了基本數據類型、關鍵字和一些系統函數等,這個版本就是通常提及的C99。但由于很多編譯器仍然沒有對C99提供完整的支持,因此本書將按照C89標準來進行講解,在適當時會補充C99標準的規定和用法。

C語言對操作系統和系統使用程序以及需要對硬件進行操作的場合,用C語言明顯優于其它高級語言,許多大型應用軟件都是用C語言編寫的。它還具有繪圖能力強,并具備很強的數據處理能力,因此適于編寫系統軟件,三維,二維圖形和動畫它是數值計算的高級語言。主要特征如下:

①簡潔緊湊、靈活方便:

C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。

②運算符豐富:

C的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括號、賦值、強制類型轉換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。

③數據結構豐富:

C的數據類型有:整型、實型、字符型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據類型的運算。并引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。

④結構式語言:

結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便于使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,并具有多種循環、條件語句控制程序流向,從而使程序完全結構化。

⑤程序設計自由:

一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。

⑥直接訪問物理地址:

C語言可直接訪問物理地址,可以直接對硬件進行操作,因此C語言既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、字節和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統軟件。

⑦程序執行效率高:

C語言程序生成代碼質量高,程序執行效率高,一般只比匯編程序生成的目標代碼效率低10~20%。

⑧可移植:

C語言有一個突出的優點就是適合于多種操作系統,如DOS、UNIX,也適用于多種機型。

主流開發環境

較早期程序設計的各個階段都要用不同的軟件來進行處理,如先用字處理軟件編輯源程序,然后用鏈接程序進行函數、模塊連接,再用編譯程序進行編譯,開發者必須在幾種軟件間來回切換操作。

現在的編程開發軟件將編輯、編譯、調試等功能集成在一個桌面環境中,這就是集成開發環境,又稱IDE(Integrated Development EnvironMent),將它們集成在一起這樣就大大方便了用戶。

IDE為用戶使用C、C++、Java和Delphi等現代編程語言提供了方便。不同的技術體系有不同的IDE。比如Visual Studio可以稱為C、C++、VB、C#等語言的集成開發環境,所以Visual Studio可以叫做IDE。同樣,Borland的JBuilder也是一個IDE,它是Java的IDE。Eclipse也是一個IDE,可以用于開發Java語言和C++語言。下面將介紹幾種主流的C語言開發環境。

①Code::Bloocks

Code::Blocks 是一個體積小、開放源碼、免費的跨平臺C/C++集成開發環境,它提供了大量的工程模板,支持插件,并且具有強大而靈活的配置功能,是目前主流的開發環境。

②Microsoft Visual Studio

Microsoft Visual Studio是美國微軟公司推出的集成開發環境。它包括整個軟件生命周期中所需要的大部分工具,如代碼管控工具、集成開發環境等,但軟件體積偏大,目前最新版本為Visual Studio 2015。

③Eclipse

Eclipse是用于Java語言開發的集成開發環境,現在Eclipse已經可以用來開發C、C++、Python和PHP等眾多語言,此外,也可以安裝插件,比如CDT是Eclipse的插件,它使得Eclipse可以作為C/C++的集成開發環境。

④Vim

Vim是一個功能強大的文本編輯器,它是從Vi編輯器發展過來的,可以通過插件擴展功能來達到和集成開發環境相同的效果。因此,Vim有的時候也被程序員當做集成開發環境使用。

⑤Microsoft Visual C++6.0

Microsoft Visual C++ 6.0,簡稱VC6.0,是微軟于1998年推出的一款C++編譯器,集成了MFC 6.0,包含標準版(Standard Edition)、專業版(Professional Edition)與企業版(Enterprise Edition)[2]。發行至今一直被廣泛地用于大大小小的項目開發。本書假設您的開發環境為Microsoft Visual C++ 6.0。

第一個C程序通過前面對C語言的介紹,相信大家已經對C語言產生了濃厚的興趣,下面正式開啟C語言的編程之旅。為了讓初學者對學習C語言產生足夠的信心,第一個程序盡量簡短。

#include

int main()

{

printf(“這是第一個C語言程序!n”);

return 0;

}

例子代碼實現了一個C程序,在屏幕上輸出“這是第一個C語言程序!”信息。下面對其中代碼逐行進行詳細地解釋。

第1行:字符‘#’是預處理標志,用來對文件進行預處理操作。預處理標志表示該行代碼要最先處理,所以它要在編譯器編譯代碼之前運行。include是預處理指令。它后面跟著一對尖括號,表示將尖括號中的文件在這里讀入。stdio是standard input output的縮寫形式,即“標準輸入輸出”,stdio.h就是標準輸入輸出頭文件,這個頭文件中聲明了用于輸入或輸出的函數。由于此程序中用到了輸出函數printf(),因此需要添加輸入輸出頭文件。

第2行:聲明了一個main函數(也稱主函數),其中int是函數的返回值類型,每個函數都需要注明其返回值類型,表示在函數結束后,要向操作系統返回的數值類型。“()”則表明是一個函數。main函數的本質是“函數”,但它與普通函數有著本質的區別,普通函數需要由其他函數調用或者激活,main函數則是在程序開始時自動執行。每個C程序都有一個main函數,它是程序的入口。在上面的C程序中,main函數實現了屏幕上輸出“這是第一個C語言程序!”的功能。

第3行:左大括號“{”表示函數的開始。

第4行:使用printf函數來輸出一行信息。printf是print format的縮寫,print是打印的意思,format是格式化的意思,printf則是格式化輸出或者按格式輸出。“()”則表明printf是一個函數名,其中放置的是main函數傳遞給printf函數的信息。如上面程序中的“這是第一個C語言程序!”這個信息叫做參數,完成的名稱為函數的實際參數。printf函數接收到main函數傳遞給它的參數,然后將雙引號之間的內容按照一定的格式輸出到屏幕上。

第5行:return關鍵字,表示返回,作用是從函數中返回,后面跟著要返回的值——0。由于該句被添加到main函數中,表示main函數向操作系統返回一個0值(普通函數在執行完畢后,都會返回一個執行結果,return

將這個執行結果返回給操作系統)。操作系統通過返回值來了解程序退出的狀態,一般用0表示正常,用1表示異常。如果返回值類型為void,return后面則不用跟返回值,直接寫return即可終止函數的運行。

第6行:右大括號“}”表示函數的結束。

在對main函數進行聲明時,可能會發現這樣的寫法:main(),它沒有為main函數注明返回值類型。

在C 語言中,凡是未注明返回值類型的函數,就會被編譯器作為返回整型值處理。這個寫法在C90標準中還是勉強允許的,但是到了C99標準就不予通過了,因此不要這樣寫main函數。

另外,還可能會有這樣的寫法:void main()。

void作為返回值類型時,則表示“無類型”,常用在對函數的參數類型、返回值、函數中的指針類型進行聲明。由于任何函數都必須注明返回值類型,void則表示main函數沒有返回值。有些編譯器允許這種寫法,有些則不允許,因此考慮到C語言的移植性,要盡量采用標準寫法:int main()。

C程序運行流程

C語言并不能直接被計算機所理解,需要將C語言轉變成可執行代碼,即二進制代碼。在C語言轉變成二進制可執行代碼時,是以工程為單位的。而一個工程中往往會包含多個C文件。因此,需要將每個C文件都編譯成二進制代碼。此時,每個C文件所對應的二進制代碼是獨立的。由于工程是一個系統,所以需要將所有的C文件二進制代碼鏈接到一起,形成一個工程的可執行文件。一般程序的運行流程包括編輯、編譯、連接、運行四個環節,運行C語言時也需經過這四個環節。

編輯類似于文本編輯,將程序代碼輸入進去,可以修改,增加,刪除。

編譯是將C代碼轉換成CPU可執行機器指令的過程,每個.c文件生成一個.obj文件。

鏈接是把生成的(多個) .obj 文件及用到的庫文件(.lib)一起組合生成可執行文件(.exe)。

運行是指運行鏈接環節生成的可執行文件,得到預期結果的過程。

首先編寫好C程序,然后將每個.c文件生成一個.obj文件,再將生成的.obj 文件及用到的庫文件(.lib)一起組合生成可執行文件(.exe),最后運行達到預期的結果。

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137720
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    62973
  • 計算機語言
    +關注

    關注

    1

    文章

    15

    瀏覽量

    9407

原文標題:如何學習C語言?

文章出處:【微信號:單片機與嵌入式,微信公眾號:單片機與嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    STM32主流的集成開發環境有哪幾種?有什么不同?

    STM32主流的集成開發環境有哪幾種?MDK開發環境與IAR
    發表于 04-19 08:28

    8051單片機C語言開發環境實務與設計

    8051單片機C語言開發環境實務與設計從基礎出發,循序漸進地介紹8051單片機的C語言程序
    發表于 10-08 21:28 ?0次下載
    8051單片機<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>開發</b><b class='flag-5'>環境</b>實務與設計

    AVR 單片機和C語言的集成開發環境

    AVR 單片機和C語言的集成開發環境 ICCAVR編譯器簡介 ICCAVR是一個綜合了編輯器和工程管理器的集成開發
    發表于 04-13 15:11 ?104次下載

    基于KEILC開發環境的單片機C語言程序開發詳細攻略

    基于KEILC開發環境的單片機C語言程序開發詳細攻略
    發表于 07-15 13:10 ?183次下載

    單片機的C語言輕松入門

    隨著單片機開發技術的不斷發展,目前已有越來越多的人從普遍使用匯編語言到逐漸使用高級語言開發,其中主要是以C
    發表于 12-17 21:23 ?489次下載

    搭建C語言開發環境(Windows平臺)匯總

    本文給大家匯總了5種在WIN平臺下搭建C語言開發環境的方法,包括在Windows平臺配置GNU環境,使用Sublime Test
    的頭像 發表于 02-01 10:03 ?3795次閱讀

    C語言的運行環境有哪些_哪些是值得推薦的_C語言常用開發環境詳解

    C語言是發展比較早的一門編程語言,因而它也是發展比較成熟的一種編程語言。學習過C語言的人都知道,
    的頭像 發表于 02-01 10:24 ?10.7w次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>的運行<b class='flag-5'>環境</b>有哪些_哪些是值得推薦的_<b class='flag-5'>C</b><b class='flag-5'>語言</b>常用<b class='flag-5'>開發</b><b class='flag-5'>環境</b>詳解

    Xilinx正式版SDSoC開發環境可實現嵌入式C/C++語言應用開發

    是賽靈思SDx軟件定義開發環境系列成員之一,包括擴展庫、開發板、設計服務生態系統支持,可實現嵌入式C/C++
    發表于 08-21 09:32 ?2802次閱讀

    嵌入式開發語言-C語言編程

    C語言編程概述環境在Windows上構建C語言環境安裝在Mac上構建
    發表于 10-20 09:59 ?17次下載
    嵌入式<b class='flag-5'>開發</b><b class='flag-5'>語言</b>-<b class='flag-5'>C</b><b class='flag-5'>語言</b>編程

    實用的C語言開發環境CFree5.0 Pro免費下載

    實用的C語言開發環境CFree5.0 Pro免費下載
    發表于 12-30 11:24 ?1次下載

    單片機的c語言入門指南

    隨著單片機開發技術的不斷發展,目前已有越來越多的人從普遍使用匯編語言到逐漸使 用高級語言開發,其中主要是以 C
    發表于 07-07 14:34 ?10次下載

    C語言運行環境是什么

    C語言運行環境C language runtime environment)是指在執行C語言
    的頭像 發表于 11-27 16:13 ?3691次閱讀

    常用的c語言開發環境有哪些

    C語言是一種廣泛應用于系統編程、嵌入式開發和科學計算等領域的高級編程語言。為了能夠高效地開發C
    的頭像 發表于 11-27 16:14 ?6089次閱讀

    STM32單片機有哪幾種常見的開發環境

    STM32單片機是一款廣泛應用于嵌入式系統開發的單片機,針對其開發,有以下幾種常見的方式:STM32單片機有哪幾種常見的開發
    的頭像 發表于 05-18 08:04 ?3305次閱讀
    STM32單片機有哪<b class='flag-5'>幾種</b>常見的<b class='flag-5'>開發</b><b class='flag-5'>環境</b>?

    MCU編程語言開發環境介紹

    微控制器單元(Microcontroller Unit,簡稱MCU)是嵌入式系統的核心,廣泛應用于各種電子產品中。隨著技術的發展,MCU編程語言開發環境也在不斷進步,以適應不同的應用需求。 1.
    的頭像 發表于 11-01 11:51 ?1073次閱讀
    盛世国际娱乐| 百家乐庄闲| 百家乐免费试玩| 百家乐龙虎斗等| 澳门百家乐官网技巧| 王牌百家乐的玩法技巧和规则 | kk娱乐城开户| 玩百家乐输澳门百家乐现场| 太阳城百家乐官网外挂| 大发888娱乐游戏下载 官方网| 帝豪百家乐利来| 大发888娱乐备用网址| 金博士百家乐官网娱乐城| 顶级赌场连环夺宝下载| 最新百家乐游戏机| 至尊百家乐官网奇热| 大发888官方ylc8| 百家乐制胜方法| 百家乐官网分析仪博彩正网| 大发888线上| 赌场百家乐试玩| 百家乐官网怎么完才能嬴| 百家乐注册18元体验金| 百家乐官网庄家闲| 网上真钱娱乐平台| 威尼斯人娱乐网假吗| 菠菜百家乐娱乐城| 百家乐官网走势图解| 皇冠博彩网| 太阳城88娱乐城| 稳赢的百家乐投注方法| 百家乐官网在线洗码| 安庆市| 永利高a1| 678百家乐博彩娱乐场| 百家乐官网怎么玩请指教| 百家乐官网视频游戏客服| 皇冠现金网网址| 兄弟百家乐的玩法技巧和规则| 百家乐中B是什么| 百家乐官网凯时娱乐网|