前言
我主要是做工業自動化方面和物聯網方面的。了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以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/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/int.c例子:添加頭文件<limits.h>
為了得到某個類型或某個變量在特定平臺上的準確大小,您可以使用 sizeof 運算符。表達式 sizeof(type) 得到對象或類型的存儲字節大小。下面的實例演示了獲取 int 類型的大小:

3)浮點類型
包括float和double。
4)Void類型
類型說明符 void 表明沒有可用的值。void的字面意思是「無類型」,void *則為「無類型指針」,void *可以指向任何類型的數據。

3 強制類型轉換
1)數據類型轉換:C 語言中如果一個表達式中含有不同類型的常量和變量,在計算時,會將它們自動轉換為同一種類型;在 C 語言中也可以對數據類型進行強制轉換;
2)自動轉換規則:
a浮點數賦給整型,該浮點數小數被捨去;
b整數賦給浮點型,數值不變,但是被存儲到相應的浮點型變量中;
3)強制類型轉換形式: (類型說明符)(表達式)
ctype/push.c例子:

例中先計算 x+y 值為 8.8,然後賦值給 a,因為a為整型,所以自取整數部分8,a=8;
接下來 b 把 x+y 強制轉換為整型;最後 10/i 是兩個整數相除,結果仍為整數 2,把 2 賦給浮點數 f;x 為浮點型直接輸出。
例子中涉及指令請查看前幾節相關文章。
請大家關注點讚轉發,謝謝!