羅列C 語言中一些不太引人注意的細節

2022-03-28 05:37:25 字數 642 閱讀 1841

argument dependent name lookup (又稱作koening name lookup)

它的含義是指,對於未通過命名空間限定的函式呼叫(英文叫unqualified),編譯器會參照各個引數所在的命名空間,去查詢相應函式的定義和宣告。將起來太抽象,舉個例子

#include namespace

layer1 ;

void foobar(classinlayer1 c)

};namespace

layer2 ;

void foobar(classinlayer2 c)

} int

main()

可以看到,main函式中有兩個foobar的函式呼叫,其中乙個的入參是layer1::classinlayer1,而另乙個是layer2::classinlayer2。雖然這兩個foobar都沒有用命名空間去限定(完整的寫法應該是layer1::foobar(c)),此時編譯器會根據入參所在的命名空間,去尋找相應的函式定義。程式的輸出是

ken@ken-n56vz ~/documents/trialinferno/c++ $ ./a.out

foobar in layer 1

foobar in layer 2

c語言中一些公用的方法

這段由於學業的原因,最近與c有所接觸,面向過程與物件導向還是有點區別。但是方法還是可以寫成公用的.下面幾個函式感覺用的比較經常點,就貼上來了.25 子串判斷 引數 sourcestr源串,desstr判斷串 int stringjudge char sourcestr,char desstr ret...

c語言中的一些注意點

1.指標函式和函式指標的區別 1 指標函式是指帶指標的函式,即本質是乙個函式。函式返回型別是某一型別的指標 型別識別符號 函式名 參數列 int f x,y 首先它是乙個函式,只不過這個函式的返回值是乙個位址值。函式返回值必須用同型別的指標變數來接受,也就是說,指標函式一定有函式返回值,而且,在主調...

C語言中一些基本問題

其中的u為unsigned,l為long,f為float c語言中常量的默情況 整形預設為有符號int 浮點型預設為double 如果整形常量大小超出int,預設自然就為long int 如果需要無符號整形常量的話就可以在常量後面加u或是u,如0u或是0u,同理可以在常量後面加ul或ul表示無符號長...