亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C 語言的命名空間

發布時間:2020-07-13 20:32:04 來源:網絡 閱讀:479 作者:senseshield 欄目:編程語言

C語言也有命名空間,可分位4類命名空間。

4類命名空間:

  1. 所有的標簽(label)都屬于同一個命名空間。說明:①在同一個函數內,你的標簽不能相同。②在同一個函數內,標簽可以和其他變量名稱相同。因為它們所屬的命名空間不同。

  2. structenumunion的名稱,在 C99 中稱之為 tag,所有的 tag 屬于同一個命名空間。也就是說,如果你已經聲明struct A { int a };?就不能再聲明union A{ int a };了。
    之所以讓所有的 tag 組成一個命名空間,由于 tag 前面總是帶structenumunion關鍵字,所以編譯器可以將它們與其他的標識符區分開。

  3. structunion的成員屬于一個命名空間,而且是相互獨立的。例如:如果你已經聲明struct A { int a };?,其成員的名稱為a,你仍然可以聲明?struct B{ int a };或者union B{ int a };。之所以讓structunion的成員各自成為一個命名空間,是因為它們的成員訪問時,需要通過 “.”或”->”運算符,而不會單獨使用,所以編譯器可以將它們與其他的標識符區分開。由于枚舉類型enum的成員可以單獨使用,所以枚舉類型的成員不在這一名稱空間內。

  4. 其他所有的標識符,屬于同一個名稱空間。包括變量名、函數名、函數參數,宏定義、typedef的類型名、enum的成員 等等。注意:如果標識符出現重名的情況,宏定義會覆蓋所有其它標識符,這是因為它在預處理階段而不是編譯階段處理。除了宏定義之外其它類別的標識符,處理規則是:內層作用域會隱藏掉外層作用域的標識符。

平時寫 C 程序從來沒有想過 C 語言還有命名空間這事,有什么用呢?在《 C 語言接口與實現》這本神作中,大量使用typedef struct T *T;這種形式(其中T就是struct T *)的用法,遵循一定的約定,利用 C 語言的這種簡單的命令規則也可以獲得一些好處,使代碼更精巧,可讀性更好。

更多技術分享:Virbox 技術博客


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

松滋市| 潍坊市| 灵台县| 株洲县| 镇原县| 阿拉善右旗| 长垣县| 临夏市| 望都县| 绥滨县| 新巴尔虎左旗| 贵州省| 双江| 丰台区| 牙克石市| 慈溪市| 嘉善县| 永新县| 灵宝市| 北安市| 板桥市| 绥阳县| 宁国市| 黄大仙区| 长寿区| 呼伦贝尔市| 惠水县| 姜堰市| 革吉县| 太原市| 漳州市| 绥德县| 瓦房店市| 达州市| 陇川县| 西盟| 乌恰县| 安图县| 南昌市| 富裕县| 龙胜|