C核心技術手冊(八)

2021-05-23 18:02:11 字數 1546 閱讀 7814

識別符號是指

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個十六進...