嵌入式Linux C編程 02

查看當前機器的各數據類型的取值範圍,可查看文件「limits.h函數

2.2.四、枚舉類型spa

enum 枚舉名
{
    枚舉值表
};

在32位機中地址長度都是32位,所以,不管哪一種類型的指針都佔4個字節。指針

二、指針常量code

指針常量只有惟一的一個NULL(空地址)。對象

 

全局變量內存

(1)全局變量的定義和全局變量的聲明並非一回事,全局變量定義必須在全部的函數以外,且只能定義一次,其通常形式爲:作用域

[extern] 類型說明符 變量名, 變量名...

extern能夠省略。it

全局變量的聲明出如今要使用該變量的各個函數內。在整個程序中,可能出現屢次。編譯

extern 類型說明符 變量名, 變量名...

全局變量在定義時就已經分配了內存單元,而且可作初始賦值。全局變量聲明時不能再賦初始值,只是代表在函數內要使用某外部變量。class

(3)全局變量的內存分配是在編譯過程當中完成的。

三、變量的存儲方式

靜態存儲 和 動態存儲

生存期 和 做用域

存儲類型:

  • auto 自動變量(動態)
  • static 靜態變量(靜)
  • register 寄存器變量(動態)
  • extern 外部變量(靜)

一、函數內凡未加存儲類型說明的變量均視爲自動變量,也就是說自動變量可省去說明符auto。

靜態局部變量 和 靜態全局變量

const int *a;
int * const a;

第一條,修飾指針a所指向的地址,沒法經過指針a來修改其指向的對象的值。可是a這個指針自己的值(地址)能夠改變,即指向其餘對象。

第二條,修飾的是指針a。(地址)不可改變。

 

2.4.七、sizeof操做符

單目運算符;運算對象是變量或數據類型;結果爲一個整數。

變量佔用內存空間的字節數。

 

結構體

struct 結構體名
{
    類型 成員名;
    類型 成員名;
    ...
} 結構體變量名;

結構體名是結構體的標識符,不是變量名。

struct person
{
    char name[8];
    int age;
} p1;
struct person
{
    char name[8];
    int age;
};

struct person p1;

void *malloc(size_t size);

free釋放

2.八、_attribute_機制介紹

_attribute_語法格式:

_attribute_ ((attribute-list))
相關文章
相關標籤/搜索