識別符號是指
c程式中的變數、函式、巨集、結構和其他物件的名稱,識別符號可以包括下面的字元:
l基本字符集中的字母
, a-z
和a-z,
識別符號是大小寫敏感的;
l下劃線字元,_;
l數字,0-9,
但首字元不能為數字;
l通用字元用來表示其他語言中的字母和數字;
被允許的通用字元定義在
c標準的附錄
d中,與
iso/iec tr 10176
標準中的字元相符。
識別符號中也允許使用多位元組字元,但是要由
c執行程式執行環境來決定哪些多位元組字元可以使用。
下面37
c語言保留,在編譯器中有其他意義,不能被用做識別符號:
auto
enum
restrict
unsigned
break
extern
return
void
case
float
short
volatile
char
forsigned
while
const
goto
sizeof
_bool
continue if
static
_complex
default
inline
struct
_imaginary do
intswitch
double
long
typedef
else
register
union
下面的例子是正確的識別符號:
x dollar break error_hander scale64
下面的的例子是不正確的識別符號:
1st_rank switch y/n x-ray
如果編譯器支援通用字元名,
a則為有效的識別符號,你可以將這它定義為乙個變數名:
double
a =
0.5;
你的**編輯器將會以通用字元
/u03b1表示a
將其儲存在檔案中。
當在程式中先擇識別符號時,記住有些識別符號已經在
c標準庫中使用,所以不用使用它來為你的函式或全域性變更命名,詳見第
15章。
編譯器提供了預指示符
__func__,
你可以使用用此字串常量來獲得函式的名稱,這對日誌和除錯輸出很有幫助,例如:
此例中,傳乙個空指標給函式
test_func(),
產生乙個如下的錯誤資訊:
對於識別符號的長度沒有限制,但是,大多數編譯器認為識別符號中只有有限個數的字元才具有意義,換句話說,編譯有可能區分不開均很長的識別符號,根據
c標準,編譯器必須視函式名、全域性變數名識別符號的前
31個字母為有意義的
(即:外部鏈結識別符號
),並且認為其他的識別符號至少前
63個字元是有意義的。
C核心技術手冊(二)
組成c 程式的 積木 叫做函式,每個函式都有自己的用途,並且可以相互呼叫。每個函式包含可被執行的語句,而這些語句可以分組,從而形成語句塊。做為程式設計師,你可以直接使用 c標準庫的的函式,也可以自己編寫函式來實現既定目的。除此之外,還有很多專用的庫可以使用,例如圖形函式庫。然而,使用這些非標準庫,會...
C核心技術手冊(四)
在原始碼中應該使用注釋來說明程式,在 c語言中,有兩種插入注釋的方法 塊注釋使用 表示 開始,表示結束 行注釋使用 開始,直到此行結尾。你可以使用分割符 和 在一行中開始和結束注釋,並可以巢狀注釋在多行中,例如,在下面的函式原型中,省略號 表示 open 函式有第三個可選引數,注釋解釋此引數的使用方...
C核心技術手冊(七)
通用字元名 c也支援通用字元名來使用擴充套件字符集,使用通用字元名,你可以指定任何擴充套件字元,它的 unicode 值如下形式 u x 或者 u xx 其中,x 或 xx為16 進製的unicode 指標符號,使用小寫字母 u做為字首,後面為四個十六進製制數字,或者大寫字母 u,後面為 8個十六進...