C 語言中一般的變數其儲存類別 (包含 storage class、scope、lifetime)
大概可分為以下七種:
(1)局部變數(Local Variable)
例如 post.c:outgo_post() 的 char *fpath;
就是一般最常用的那種,只能在這函式裡面用,且用完就洗掉了
(2)局部靜態變數(Local Static Variable)
例如 talk.c:pal_ship() 的 static PALSHIP palship[PAL_MAX];
值會一直存在不被洗掉,但是只有 pal_ship() 裡面能用
(3)全域變數(Global Variable)
例如 board.c 的 char brd_bits[MAXBOARD];
在整個 board.c 裡面的所有函式都可以用
值會一直存在不被洗掉
(4)全域靜態變數(Global Static Variable)
例如 board.c 的 static char *class_img;
在整個 board.c 裡面的所有函式都可以用
但是只限制在 board.c 裡面才能用
值會一直存在不被洗掉
(5)檔外定義全域變數(Extern Global Variable)
例如 favor.c 的 extern char brd_bits[];
可以把原本在 board.c 裡面的 brd_bits[] 直接拿過來用
在整個 favor.c 都可以用
值會一直存在不被洗掉
(6)檔外定義局部變數(Extern Local Variable)
例如 visio.c:vget_match() 的 extern char brd_bits[];
可以把原本在 board.c 裡面的 brd_bits[] 直接拿過來用
但是只有在 vget_match() 裡面能用
值會一直存在不被洗掉
(7)暫存器變數(Register Variable)
例如 talk.c:ulist_cmp_pal() 的 register int k;
只能在這函式裡面用,且用完就洗掉了
--
╭── Origin ╮ 動力核心 processor.tfcis.org ~ δεζ ──┼
┼ Author ╯ itoc.Dorm-GD2.NCTU.edu.tw