【愛找茬】都是C語言,單片機C語言和普通的C語言究竟有什麼差異呢?

2020-12-12 騰訊網

許多小夥伴在學完C語言後想入門單片機,但學著學著發現明明都是C語言,為什麼單片機C語言和我當初學的C語言有差異呢?今天小編就來梳理我們平時所學的C語言與單片機C語言的有什麼樣的不同。

C語言:

C語言是一門通用計算機程式語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的程式語言。

儘管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的C語言程序可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平臺。

C語言是一門面向過程的計算機程式語言,與C++,Java等面向對象的程式語言有所不同。

其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

單片機的C語言:

單片機軟體設計使用C語言作為編程開發軟體,採用模塊化的程序結構,設計了按鍵模塊程序、RFID模塊程序、日曆時鐘模塊程序、GPRS模塊程序、顯示存儲模塊程序等,並編寫系統主程序,將五個程序模塊組合在一起,實現單片機控制系統的整體功能。

51單片機支持三種高級語言,即PL/M,C和BASIC。C語言是一種通用的程序設計語言,其代碼率高,數據類型及運算符豐富,並具有良好的程序結構,適用於各種應用的程序設計,是目前使用較廣的單片機程式語言。

單片機的C語言採用C51編譯器(簡稱C51)。有C51產生的目標代碼短,運行速度高,所需存儲空間小,符合C語言的ANSI標準,生成的代碼遵循Intel目標文件格式,而且可與A51彙編語言或PL/M51語言目標代碼混合使用。

單片機C語言比起普通C語言增加了一些基本的指令,變量的賦值是16進位,當然單片機C語言只牽涉到普通C語言的基礎部分。

具體體現在:

1.單片機中C的語法一般都對 ANSI C有些擴展,及一些特殊寫法 如C51擴展的 data xdata bit sbit 一類的,還有一些中斷程序寫法 void int() interrput 1 一類的。

2.C是一門語言,由對應平臺的編譯器編譯成對應平臺彙編的程序,各平臺的彙編不一樣,當然編譯器也不一樣 DOS上的TC2 TC3 WINDOWS上的VC 8051的C51都有自已的編譯器 。具體區別是由編譯器決的,只能參考對應的編譯手冊,即使同種平臺不同的編譯器對C的擴展也有不同。

3.單片機c語言編程是基於C語言的單片機編程。單片機的C語言採用C51編譯器(簡稱C51)。由C51產生的目標代碼短、運行速度高、存儲空間小、符合C語言的ANSI標準,生成的代碼遵循Intel目標文件格式,而且可與A51彙編語言PL/M51語言目標代碼混合使用。

C51本質就是C,是為在單片機上使用C而出來的,如果C不牢固,還是多掌握一點C再學C51,不過新增的知識也不少,而且基本上跟C無關。

4.C只是一種高級語言。它除具有一般高級語言的功能特性外,它可以很好的操作底層的硬體接口。在C語言的基礎上,如果你把一些單片機的埠或特殊功能寄存器加於定義,使之方便於在 寫語句的時候,直接直觀的編寫。這樣就差不多是單片機C語言。

結語

C語言是我們入門編程所學習的一門語言,也是IOS開發、單片機開發等應用上具有重要應用的一門語言,雖然C語言與單片機C語言、C++、C#等有或小或大的差異,但他們的編譯機理、表達形式都是一樣的!

相關焦點

  • 用c語言編寫表白圖案_用c語言編寫一個表白
    用c語言編寫表白圖案?用c語言編寫一個表白?
  • 新概念51單片機C語言教程入門、提高、開發、拓展全攻略
    關注「麵包板社區」微信公眾號, 回復「51單片機」即可獲取!【您還可以試著發送:「ARM、PCB、STM32、汽車電子、機器人、電源、電機、嵌入式、信號系統、模電、華為、哈佛、Python、電子學、視頻教程、660、開關電源、機電、電路、c語言
  • c語言代碼表白公式_表白代碼c語言
    c語言代碼表白公式?表白代碼c語言?
  • 最適合單片機編程的高級語言,除了C語言,別無選擇!
    單片機為什麼還在用C語言編程?答案是:C語言是最適合單片機編程的高級語言。 這個問題的意思應該是:現在有很多很好用的高級語言,如java,python,VC等等,為什麼這些語言不能用來編寫單片機程序呢?那麼這個問題的答案就是:不能不能,而是不合適。
  • 現代程式語言起點,C語言之環境搭建
    1972 年,為了移植與開發 UNIX 作業系統,丹尼斯·裡奇在貝爾電話實驗室設計開發了 C 語言。UNIX 作業系統,C編譯器,和幾乎所有的 UNIX 應用程式都是用 C 語言編寫的。C 語言是一種廣泛使用的計算機語言,它與 Java 程式語言一樣普及,二者在現代軟體程式設計師之間都得到廣泛使用。C 語言被廣泛使用,比如:Linux 作業系統和 RDBMS(關係資料庫管理系統) MySQL 都是使用 C 語言編寫的。
  • C語言中「c=a+b」,這種結構合理嗎?
    C語言會同意一些"令人震驚"的結構,下面的結構是合法的嗎,我們來看看幾個例子。 c = a+++b; 以下代碼是合法的嗎,咋的一看不禁有這樣的疑問?
  • C語言怎麼樣?今天聊聊C語言的發展史!
    為什麼用基本這個詞呢?因為,在系統裡面有一部分命令是用B語言寫的。 後面的故事,大家可能也聽說過:後來學術和政府組織中都在使用Unix,也正是由於Unix的風靡與興盛,帶動了C語言被廣泛的傳播、使用。 在1980年代,C語言的使用廣泛傳播,並且幾乎所有機器體系結構和作業系統都可以使用編譯器。
  • c語言是C語言 C教程語言零基礎教學04:int和float變量的基本使用
    大家好,我是陌塵那麼就直接開始了我們這篇教程學for循環以及冒泡算法我們先來理解一下什麼是「循環」字面意思:但是,C語言的循環和這個有點點不同,c語言中大概就是:重複執行一段特定的代碼。且C語言裡面的循環有多種方法來實現常見的有用for和while函數我們這節課只講for函數使用方法:for(單次表達式;條件表達式;表達式){特定代碼;}好了,又到了萬眾矚目的分析時間 了(此刻應有bgm)首先 單次表達式,意思就是只會執行一次的表達式(何為表達式?百度啊!!!)
  • C+相比其他語言到底難在哪裡?
    看過程式語言排行榜的都知道,c/c++自02年以來,不管時代如何發展,其排名一直在前五以內,足見其在程式語言界的地位。編程界流行這麼一句話:c幾乎什麼都能做,c++幾乎什麼都能做好,足見其功能的強大。
  • C語言程序設計試題及答案
    A) 它是程序開始運行的第一個被調用的函數   B)有沒有他都可以C) 它是唯一不可缺少的函數   D) 沒有他,程序就無法運行6、若已定義x和y為double型,則表達式」x=1,y=x+3/2」的值是( )。
  • C語言項目中.h和.c文件的關係和概念
    但他們卻不得不一個字一個字地重複地將這些內容敲入每個.c(.cpp)文件。但更為恐怖的是,當其中一個聲明有變更時,就需要檢查所有的.c(.cpp)文件。 於是人們將重複的部分提取出來,放在一個新文件裡,然後在需要的.c(.cpp)文件中敲入#include XXXX這樣的語句。
  • c語言程序設計是什麼概念?及其作用與產生原因
    c語言程序設計什麼是c語言程序設計?它的作用是什麼?因為什麼而產生?首先,c語言是一門計算機高級語言,就是除了0011101這樣的二進位代碼這些基本語言外。人類用適合自己一般邏輯的方便的,字符,詞組,字母等等來設計的語言。
  • C語言和VS
    C語言是一門面向過程的計算機程式語言,與C++、Java等面向對象程式語言有所不同。我們要學習一門程式語言,先得了解它能幹什麼,可以給我們帶來什麼樣的用處,C語言的應用領域主要有幾個方面:C語言C語言最著名的應用領域就是編寫作業系統,比如Unix系統和Linux系統就是用C語言編寫的;其次是單片機,雖說製作單片機的語言有很多,但核心的是C語言不假;其他的還有驅動程序
  • 世界上第一個C語言編譯器是怎麼編寫的?它為什麼能夠用C語言編寫?
    不知道大家有沒有想過一個問題:C語言編譯器為什麼能夠用C語言編寫? 今天小編就帶大家一探究竟!這些操作,C語言都是可以實現的。 所以用C語言來做C語言的編譯器是完全可行的。 但是,歷史上的第一個C語言編譯器,肯定不是C語言寫的,因為在沒有編譯器時,無法把C語言轉換成可執行文件。只要有了第一版其它語言的編譯器,就可以用C語言寫編譯器了。
  • c語言浪漫有趣程序_c語言浪漫有趣簡單程序
    c語言浪漫有趣程序?c語言浪漫有趣簡單程序?展開全部這個,感覺有點太簡易了,弄點花樣才顯誠意嘛!
  • 三、C語言表達式、選擇結構
    C語言有構造類型,沒有邏輯類型。關係運算符號:注意<=的寫法,==和=的區別!帶入為1<0<2,從數學的角度出發肯定是錯的,但是如果是C語言那麼就是正確的!因為要1<0為假得到0,表達式就變成了0<2那麼運算結果就是1,成為了真的了!c、等號和賦值的區別!
  • C語言基礎(下)
    C語言的世界結構體類型什麼是結構體>我們觀察現實世界的時候,可以發現很多的東西它都是由不同的部分組合起來的。結構體就是把這些東西組合在一起,進行統一的訪問和管理。可以理解成是對現實世界的抽象結構體不僅可以記錄不同類型的數據,而且使得數據結構是「高內聚,低耦合」的,更利於程序的閱讀理解和移植,而且結構體的存儲方式可以提高CPU對內存的訪問速度。
  • C語言基礎知識
    pow(x, y)函數C 和 Python 語言的 pow(x, y) 方法都是用於返回 (x 的 y 次方) 的值,C 語言中其原型為:double pow(double x, double y)。數據類型整數類型下表列出了關於標準整數類型的存儲大小和值範圍的細節:浮點類型下表列出了關於標準浮點類型的存儲大小、值範圍和精度的細節:IO 函數
  • 用C語言編寫屬於自己的程式語言,大一學完C語言即可做!
    首先,明確一點,咱這個項目只是做一個簡單的腳本語言而不是編譯型語言!!!其次,本文不需要太多專業知識,所以不慌。最後,本文只是簡單實現腳本語言,雖然不牛X......實驗環境 : linux2.知識點 : 大一所學 C語言 知識二 要做功能:1.實現語法分析列印 hello-world
  • C語言程序設計試題與答案B卷
    A)順序結構、選擇結構和循環結構 B)遞歸結構、循環結構和轉換結構C)嵌套結構、遞歸結構和順序結構 D)循環結構、轉移結構和順序結構12、表達式 1 || !3&&5的值為( )。