java是什么 C語言名字空間究竟是什么?
C語言名字空間究竟是什么?防止名稱沖突。在沒有名字空間的舊時(shí)代,每個(gè)人的名字都是一鍋粥,每個(gè)項(xiàng)目都要注意自己的名字。張三做了一個(gè)木槌,所以他不得不注意,給它取名為張三錘,李四做了一個(gè)錘子叫李四錘,如果
C語言名字空間究竟是什么?
防止名稱沖突。在沒有名字空間的舊時(shí)代,每個(gè)人的名字都是一鍋粥,每個(gè)項(xiàng)目都要注意自己的名字。張三做了一個(gè)木槌,所以他不得不注意,給它取名為張三錘,李四做了一個(gè)錘子叫李四錘,如果兩個(gè)錘子合在一起,就沒有辦法把它們編成同一個(gè)名字。當(dāng)然,很多人根本不介意這一套。此外,有些人還想重用其他依賴庫甚至標(biāo)準(zhǔn)庫使用過的一些名稱。沒有名稱空間他們就做不到。
名稱空間是解決此問題的方法。在C語言中,標(biāo)準(zhǔn)庫的所有名稱都在STD之下。同時(shí),除非你想被噴死,否則一個(gè)好的項(xiàng)目必須將其所有名稱都放在項(xiàng)目的名稱空間中。張三:棒槌,李四:棒槌,STD::棒槌不能碰對方,所以名詞碰撞的問題就少了很多。當(dāng)然,更徹底的方法是將包名按Java域名的倒序排列,這樣也可以避免兩個(gè)項(xiàng)目想要使用相同的項(xiàng)目名/包名而導(dǎo)致沖突的問題。然而,在實(shí)際應(yīng)用中,只要有一個(gè)名稱空間和rational代碼樣式,基本上就可以解決這個(gè)問題。