無名namespace的作用

2021-06-16 11:54:53 字數 502 閱讀 4092

以上介紹的是有名字的命名空間,c++還允許使用沒有名字的命名空間,如在檔案a中宣告了以下的無名命名空間:

namespace //命名空間沒有名字

由於命名空間沒有名字,在其他檔案中顯然無法引用,它只在本檔案的作用域內有效。無名命名空間的成員fun函式的作用域為檔案a(確切地說,是從宣告無名命名空間的位置開始到檔案a結束)。在檔案a中使用無名命名空間的成員,不必(也無法)用命名空間名限定。

如果 在檔案a中有以下語句:

fun();

則執行無名命名空間中的成員fun函式,輸出」ok.」。

在本程式中的其他檔案中也無法使用該fun函式,也就是把fun函式的作用域限制在本檔案範圍中。可以聯想到:在c浯言中可以用static宣告乙個函式,其作用也是使該函式的作用域限於本檔案。c++保留了用static宣告函式的用法,同時提供了用無名命名空間來實現這一功能。隨著越來越多的c++ 編譯系統實現了ansi c++建議的命名空間的機制,相信使用無名命名空間成員的方法將會取代以前習慣用的對全域性變數的靜態宣告。

C 的命名空間namespace的作用

c 語言引入命名空間 namespace 這一概念主要是為了避免命名衝突,其關鍵字為 namespace。乙個工程專案或系統通常由不同的人員 模組化 來開發,當所有模組開發完成後,需要整合。此時,不同人命名的各種變數產生衝突的概率很高。如 因為個人習慣不同,a喜歡宣告int型變數flag 0 1用於...

無名管道的用法

無名管道又被稱為pipe,是程序間通訊的一種方式。pipe具有以下特點 只能用於具有血緣關係的程序之間 半雙工的通訊模式,具有固定的讀端和寫端 一種特殊的檔案,存在於記憶體中。可通過read write對其操作 因為pipe存在於記憶體中,所以無法像操作普通檔案那樣通過指定路徑來開啟檔案。通常的做法...

無名管道的通訊

通過使用管道實現兩個或多個程序之間的通訊。所謂管道,就是將乙個程序的標準輸出與另乙個程序的標準輸入聯絡在一起,進行通訊的一種方法。同組程序之間可用無名管道任意通訊,而不同組程序之間可通古共有名管道進行通訊。使用無名管道pipe 進行父子程序之間的通訊。分析 父程序首先使用pipe chanl 系統呼...