回精華區
作者itoc.bbs@processor.tfcis.org (:MM:), 看板: plan
標題Re: [修正] cache.c fshm
時間XEON (Sat Jan 18 02:27:33 2003)
  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
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻