C語言關鍵字 二

2021-06-28 13:01:55 字數 2607 閱讀 3592

一般來說,編碼的水平與 goto 語句使用的次數成反比。

個人主張,禁用 goto 語句。

1> 如果函式沒有返回值,那麼應將其宣告為void 型別。
2> 如果函式無引數,那麼應宣告其引數為void
1> 不能對void 指標進行演算法操作
2> 如果函式的引數可以使任意型別指標,那麼應宣告其引數為 void*

return 用來終止乙個函式 並 返回其後面跟著的值。

return (val);

// 此括號可以省略,但一般不省略,尤其在返回乙個表示式的值時;

注: 1> 乙個函式內可以有多個 return 語句,但只有乙個 return 語句被執行

2> return  語句不可返回指向 "棧記憶體" 的 "指標", 因為該內存在函式結束時被自動銷毀。

定義 const 唯讀變數,具有不可變性。
注: const 修飾的唯讀變數必須在定義的同時初始化。
編譯器通常不為普通 const 唯讀變數分配記憶體空間,而是將他們儲存在符號表中,這使得他成為乙個編譯器期間的值,沒有了儲存與讀記憶體的操作,使得它的效率也很高。
int const i = 2; 或 const int i = 2;
唯讀陣列: int const a[5] = ;
const int a[5] = ;
const int *p;

// p可變, p指向的物件不可變

int const *p;

// p可變, p指向的物件不可變

int *const *p;

// p不可變, p指向的物件可變

const int *const *p;

// 指標p和p指向的物件都不可變

當不希望引數值在函式體內被意外改變時使用。
例: void fun(const int i);
1> const 修飾符也可以修飾函式的返回值,返回值不可被改變。
例: const int fun(void);
2> 在另一連線檔案中引用 const 唯讀變數
extern const int i;

// 正確的宣告

extern const int j = 10;

// 錯誤,唯讀變數的值不能改變

volatile 是易變的、不穩定的意思。
volatile 關鍵字 和 const 一樣是一種型別修飾符,用它修飾的變數表示可以被某些編譯器未知的因素改變,比如作業系統、
當引用另乙個檔案中定義的變數或函式時,使用 extern 進行宣告
struct 是乙個神奇的關鍵字,它將一些相關聯的資料打包成乙個整體,方便使用。

1、結構體的大小

2、柔性陣列

union 關鍵字的用法與 struct 的用法非常類似。

union 維護足夠的空間來放置多個資料成員中的 "一種",而不是為每個資料成員配置空間。在union中所有的資料成員公用乙個空間,同一時間只能儲存其中乙個資料成員,所有的資料成員具有相同的起始位址。

列舉 與 #define 巨集的區別

1> #define 巨集常量是在預編譯階段進行簡單替換; 列舉常量則是在編譯的時候確定其值

2> 一般在編譯器裡,可以除錯列舉常量,但不能除錯巨集常量。

3> 列舉可以一次定義大量相關的常量,而#define 巨集 一次只能定義乙個。

注意typedef 與 #define 的區別

#define int32 int 

unsigned int32 i = 10;

// 正確

typedef int int32;

unsigned int32 j = 10;

// 編譯錯誤

C語言關鍵字

c語言關鍵字 在檔案範圍的教訓和關鍵字,你知道靜態變數保持他們的價值觀,甚至不在他們超出範圍的破壞。比如說呢。int generateid int main this program prints 01 2 請注意,s nid一直保持它的價值的跨多個函式呼叫。static關鍵字有另一種意思當應用到全...

C語言關鍵字

關鍵字就是已被c語言本身使用,不能作其它用途使用的字。例如關鍵字不能用作變數名 函式名等 由ansi標準定義的c語言關鍵字共32個 auto double int struct break else long switch case enum register typedef char extern...

c語言關鍵字

c 語言標準定義的32 個關鍵字 1 auto 宣告自動變數,預設時編譯器一般預設為auto int 宣告整型變數 double 宣告雙精度變數 雙精度浮點型 long 宣告長整型變數 char 宣告字元型變數 float 宣告浮點型變數 單精度浮點型 6.1 float的有效位通常有 位,指的是小...