物聯網開發筆記——嵌入式開發之Linux系統中C語言數據類型

2020-12-08 樂創iot

前言

我主要是做工業自動化方面和物聯網方面的。了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學物聯網系列的開發筆記的文章。

第一節物聯網開發筆記——嵌入式開發之Linux系統環境搭建主要講解了在Windows系統下,用虛擬機的方法搭建環境。第二節物物聯網開發筆記——嵌入式開發之Linux系統中文件和目錄相關命令主要講解Linux系統如何創建文件刪除修改等相關命令。第三節物聯網開發筆記——嵌入式開發之Linux系統Vi編輯器的使用主要講解Vi編輯器的使用。第四節物聯網開發筆記——嵌入式開發之Linux系統中C程序的編譯與調試主要講解C語言程序的編譯與調試。嵌入式開發學習C語言打下基礎。本節介紹《Linux系統中C語言數據類型》。

1 數據類型分類

short、int、long、char、float、double 這六個關鍵字代表C 語言裡的六種基本數據類型。

數據類型

列出了關於標準整數類型的存儲大小和值範圍的細節:

整數類型

注意,各種類型的存儲大小與系統位數有關,但目前通用的以64位系統為主。具體可以用sizeof測試一下即可。

列出了關於浮點類型的存儲大小和值範圍的細節:

浮點類型

2 基本數據類型

1)邏輯類型

只有兩個true和false,表示邏輯真值和邏輯假值。

bool類型,值域:非零(true),零(false)。

If(-1)

X=12;

else

X=-18;

上面程序中條件-1為非零(true),執行X=12;

ctype/bool.c例子:

ctype/bool.c例子

ctype/bool2.c例子:

ctype/bool2.c例子

注意:bool類型需要引入庫文件:<stdbool.h> _Bool為基本類型。

2)整型類型

包括char,short,int和long。

使用char類型注意,防止數據超出值域。

如:char c1 = 128; //出錯,數據越界(-128)

char c1 = 129; //出錯,數據越界(-127)

unsigned char c2 = -1; //出錯,數據越界(255)

註:

-127 原碼: 1 111 1111

反碼: 1 000 0000

補碼: 1 000 0001

-128 補碼: 1 000 0000

ctype/char.c例子:

ctype/char.c例子
ctype/char.c例子2

ctype/int.c例子:添加頭文件<limits.h>

為了得到某個類型或某個變量在特定平臺上的準確大小,您可以使用 sizeof 運算符。表達式 sizeof(type) 得到對象或類型的存儲字節大小。下面的實例演示了獲取 int 類型的大小:

sizeof 運算符

3)浮點類型

包括float和double。

4)Void類型

類型說明符 void 表明沒有可用的值。void的字面意思是「無類型」,void *則為「無類型指針」,void *可以指向任何類型的數據。

Void類型

3 強制類型轉換

1)數據類型轉換:C 語言中如果一個表達式中含有不同類型的常量和變量,在計算時,會將它們自動轉換為同一種類型;在 C 語言中也可以對數據類型進行強制轉換;

2)自動轉換規則:

a浮點數賦給整型,該浮點數小數被捨去;

b整數賦給浮點型,數值不變,但是被存儲到相應的浮點型變量中;

3)強制類型轉換形式: (類型說明符)(表達式)

ctype/push.c例子:

ctype/push.c例子

例中先計算 x+y 值為 8.8,然後賦值給 a,因為a為整型,所以自取整數部分8,a=8;

接下來 b 把 x+y 強制轉換為整型;最後 10/i 是兩個整數相除,結果仍為整數 2,把 2 賦給浮點數 f;x 為浮點型直接輸出。

例子中涉及指令請查看前幾節相關文章。

請大家關注點讚轉發,謝謝!

相關焦點

  • 物聯網開發筆記——嵌入式開發之Linux系統中C語言常量
    了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學物聯網系列的開發筆記的文章。
  • 物聯網開發筆記——嵌入式開發之Linux系統中C語言分支判斷語句
    了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學物聯網系列的開發筆記的文章。
  • 物聯網開發筆記——嵌入式開發之Linux系統中輸入輸出
    了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學物聯網系列的開發筆記的文章。
  • 物聯網應用開發之C語言介紹
    物聯網是未來科技發展的趨勢之一,物聯網開發應用涉及到嵌入式開發、信息的傳輸與存取、大數據的分析、雲平臺的展現等諸多方面。在不同的過程,也可能用到不同的語言,比如C語言、Java、Python、GO、PHP等。由於在物聯網連接設備中,用於信息採集和傳輸的傳感器、電路板、物聯網IC晶片等,只擁有較小的內存和較低的處理能力,來存取相關數據。
  • 總結嵌入式開發中的C語言知識點
    #endif等)平臺擴展關鍵字(__asm, __inline,__syscall)    這些關鍵字共同構成了嵌入式平臺的C語言語法,嵌入式的應用從邏輯上可以抽象為以下三個部分:    貫穿在整個嵌入式應用開發的過程中,對數據的管理包含以下幾部分:    為了應對嵌入式開發中受限的資源環境,C語言從語法上支撐上述功能的實現,並提供相應的優化機制
  • 零基礎程式設計師想從事嵌入式開發,應該怎麼樣去學習呢?
    而物聯網這個早就不是新鮮詞彙的存在,也必然越來越火熱,而嵌入式作為物聯網核心的技術無疑是具有發展前景的技術。 1.嵌入式開發作為新人,第一C語言,有很多人自認為自己C語言很厲害,但是實際上一個從事嵌入式開發的老人,至少需要3-5年你才敢對C語言說精通。
  • 嵌入式系統高級C語言編程
    內容簡介  《嵌入式系統高級C語言編程》將主要介紹針對嵌入式系統的基於C語言的軟體項目開發的流程,較為複雜的c語言編程知識和技巧,編程風格和調試習慣
  • Python在實時嵌入式系統開發中的主要應用
    在實時嵌入式系統中是否也有Python的一席之地?答案是肯定的。 Python在實時嵌入式系統開發中的主要應用如下: 設備調試和控制 在嵌入式軟體開發過程中,開發人員常常需要分析總線通信量,如USB、SPI或I2C。有的分析僅僅是出於調試目的,但有時則需要控制總線分析儀並發送信息至嵌入式系統。許多總線分析儀和通信工具都有友好的用戶接口,可以用來控制工具。
  • PCBA與嵌入式開發
    開發流程4.什麼是嵌入式系統(1) 嵌入式系統的基本介紹嵌入式系統應定義為:嵌入到對象體系中的專用計算機系統。嵌入性、專用性與計算機系統是嵌入式系統的三個基本要素。嵌入式開發就是指在嵌入式作業系統下進行開發,一般常用的系統有ucos,linux,android等。
  • 嵌入式——C語言 1day
    一、軟體:C語言 linux C++ QT   -> 4個階段    硬體: STM32 驅動           -> 2個階段二、什麼是嵌入式?嵌入式是一門軟硬接合的技術,軟體指的是代碼,例如:C語言程序。硬體指的是開發平臺,例如:ARM板 - A8/A9/A15/A53。
  • 嵌入式Linux開發之C語言學習秘訣
    大家都知道C語言是整個嵌入式開發學習中一門重要的語言,所以學好C語言也是嵌入式開發學習中重要環節。到底如何學習C語言?C語言學習的秘訣是什麼?今天本為就為大家揭開這個謎底。學習C語言的秘訣:就是「一字真言,兩種態度,三個框架,四項注意」。
  • 學嵌入式開發難嗎_學好嵌入式開發需要多久
    如果是想進入嵌入式開發行業的人員,推薦培訓課程有:嵌入式Linux開發培訓、 嵌入式WinCE開發培訓 、linux網絡編程開發、嵌入式開發應用培訓等。      三、嵌入式作業系統   學習嵌入式系統,如linux或者wince下的編程,這些對以後做應用的編程很有幫助。應該對作業系統有所了解,這對你對硬體和軟體的理解,絕對有很大的幫助。應該把系統的管理理解一下,比如進程、線程,系統如何來分配資源的,系統如何來管理硬體等等。
  • 【視頻】物聯網開發入門+項目實戰
    在進入物聯網具體的開發課程前,我們需要錘鍊自己的基礎功底,比如C語言的編程、基本數字電路等基本概念。  -- 09 關鍵字概念及sizeof、return  -- 10 數據類型關鍵字介紹及char類型  -- 11 數據類型之int、long、short  -- 12 數據類型之符號數、浮點類型
  • 十年資深嵌入式大神:教你真正好學的嵌入式開發學習路線
    想學會linux?那麼這份嵌入式linux學習路線分享給大家。 嵌入式C語言高級編程 1、C數據類型、控制語句 2、C程序結構設計、數組、函數、預處理: 3、指針及字符串操作 4、結構體、共用體、宏、枚舉 5、文件I/O操作 數據結構及算法 1、數據結構之單向鍊表、雙向鍊表 2、數據結構之隊列、棧 3、數據結構之樹、圖 4、
  • 嵌入式學習培訓要學多久?嵌入式學習哪些內容?
    >7、物聯網8、CotexA53 Linux平臺驅動開發9、企業實戰項目嵌入式物聯網開發之基礎階段●嵌入式驅動開發環境搭建初級●C語言語法概述>Linux多線程編程嵌入式Linux網絡編程基礎嵌入式Linux之ARM體系結構與編程階段選修 - ARM開發板基礎知識選修 - ARM彙編語言選修 - ARM硬體開發基礎
  • 加速程序開發 Python整合C語言模塊
    Python是一種用於快速開發軟體的程式語言,它的語法比較簡單,易於掌握,但存在執行速度慢的問題,並且在處理某些問題時存在不足,如對計算機硬體系統的訪問,對媒體文件的訪問等。而作為軟體開發的傳統程式語言C語言,卻能在這些問題上很好地彌補Python語言的不足。
  • 工程師嵌入式Linux自學筆記及體會
    工程師嵌入式Linux自學筆記及體會 黃朝松 發表於 2014-10-24 10:08:10   針對初學嵌入式的廣大朋友們,以下是我在初學接觸嵌入式的過程中整理處的一些資料信息,希望能為大家有所幫助。
  • 搭建Linux C語言開發環境
    華清遠見成都中心高端IT就業培訓專家在Linux開發環境上學習C語言,對於一個從零開始學習嵌入式的門外漢來說,是一個很好的選擇,學習了C語言,又熟悉了Linux 作業系統。1.開發工具下載及安裝:虛擬機 VMware 10下載地址:Ubuntu 12.04下載地址:VMware虛擬機上安裝在Windows中的一個虛擬電腦的軟體。因為我們需要用到linux的真實環境,又不能完全脫離windows的一些文件操作,再在虛擬機中安裝Ubuntu 12.04系統。
  • 嵌入式及物聯網基礎實驗系統
    摘 要:針對目前高校嵌入式人才培養難度大的問題,將開源創客平臺Arduino引入嵌入式實驗教學中,研製了嵌入式及物聯網基礎實驗系統,3年的實驗教學表明:實驗系統降低了嵌入式學習的門檻和難度,在嵌入式人才培養教學過程中發揮了重要作用。
  • 基於S3C2440的嵌入式Linux根文件系統構建
    嵌入式Linux早已成為IT界家喻戶曉的一個名字,使用Linux進行嵌入式產品開發有一個很大的優勢,就是開發資源豐富,且成本低廉,嵌入式Linux作業系統越來越受到重視,其應用也越來越廣泛。而文件系統作為作業系統的重要組成部分,用於控制對數據文件及設備的存取,提供對文件和目錄的分層組織形式,數據緩衝以及對文件存取權限的控制。