1. 程式人生 > >高質量嵌入式Linux C程式設計 第二章 資料 學習筆記

高質量嵌入式Linux C程式設計 第二章 資料 學習筆記

一、什麼是資料型別? 資料型別包含兩方面的內容,資料的表示和對資料加工的操作。資料的全部可能表示構成資料型別的值的集合,資料全部合理的操作構成資料型別的操作集合。 二、什麼是變數? 其值在作用域內可以改變的量稱為變數。一個變數應該有一個自己的名字,在記憶體中佔據一定的儲存空間。變數在使用前必須被定義,每個變數都有自己的地址。 三、什麼是常量? 其值不會發生改變的量稱為常量。常量是可以不經過定義和初始化,而直接引用的,常量又分為直接常量和符號常量,直接常量又叫字面常量,符號常量,如定義的#define PI 3.14. 四、有哪些基本的內建型別? 整型、實型、構造型別、指標型別、列舉型別、void型別。 五、什麼是宣告,什麼是定義? 定義就是編譯器建立一個物件,為這個物件分配一塊記憶體並給它取上一個名字,這個名字就是我們常說的變數名或者物件名。 宣告有兩重含義,第一重:告訴編譯器,這個名字已經匹配到一塊記憶體上了;第二重:告訴編譯器這個名字我已經預定了,其他地方不可以使用它來作為變數名或物件名。 六、const修飾的到底是誰? 將型別去掉,看const直接修飾的是誰。 七、typedef和#define有什麼區別? typedef是為一個型別取新名字,而#define只是簡單的字串替換 八、列舉型別的使用方法?

enum enum_type_name
{
	ENUM_CONST_1,
	ENUM_CONST_2,
	.......
	ENUM_CONST_N
}enum_variable_name;

enum_type_name為自定義的一種資料型別名,而enum_variable_name為enum_type_name型別的一個變數,取值範圍只能在enum_type_name之內 九、聯合體的定義? 聯合體的定義和結構體相似。 十、聯合體判斷cpu工作於Little endian還是Big endian

int checkcpu()
{
	union w
	{
		int a;
		char b;
	}c;
	c.a = 1;
	return (c.b == 1);
}

我們將int型數值1寫入一個記憶體開始處,在計算機中從高位到低位儲存為1000,再用char型變數輸出,如果輸出1000,則計算機是big endian工作模式,輸出1,則計算機工作在little endian模式。