template顯式例項化與隱式例項化
模板例項化都是在編譯期完成的,不管是顯式例項化還是隱式例項化。
區別是隱式例項化只有到編譯器發現某個模板例項需要用到時,才會進行例項化。顯式例項化可以提前告訴模板去為某個型別進行例項化,無論後面會不會用到它。
所以,顯式例項化可以將模板的宣告和定義分離,隱藏實現,前提是我們只會用到被顯式例項化的幾個型別。而隱式例項化不可以,如果分離,編譯時會無法鏈結(因為找不到定義/實現)。
typename使用規範
對於用於模板定義的依賴於模板引數的名稱,只有在例項化的引數中存在這個型別名,或者這個名稱前使用了typename關鍵字來修飾,編譯器才會將該名稱當成是型別。除了以上這兩種情況,絕不會被當成是型別。
鏈結器指令
-i 指定標頭檔案最先搜尋目錄,即最先搜尋的include檔案目錄,-i.為優先搜尋當前目錄下標頭檔案
-l 指定庫檔案最先搜尋目錄,即最先搜尋的lib檔案目錄,-l.為優先搜尋當前目錄下庫檔案
-l 對靜態庫和動態庫的縮寫,就是對對應的後面引數加上lib,然後加上對於靜態庫,字尾為.a,對於動態庫,字尾為.so
-static 由鏈結器構造乙個完全鏈結的可執行目標檔案,可以直接載入執行,而無需更進一步的鏈結,檔案會很大
編譯器指令
-d巨集名 在編譯時定義巨集,-dkey=value為在編譯時定義巨集名為key,值為value的巨集,常用於此處的巨集偉debug,ddebug,來標記編譯形式。
構建庫檔案
-shared -fpic 構建動態鏈結庫,輸出一般為原始檔前加lib後加.so字尾,輸入為源**檔案
對於-fpic無法編譯的檔案,使用-fpic重新編譯,編譯構建工具為gcc,實際構建中使用-shared引數調動鏈結器對以位置無關性引數編譯生成的.o檔案進行鏈結
ar rcs 為構建靜態鏈結庫的工具,輸入為.o檔案,需優先使用gcc將原始檔編譯為.o檔案,再使用ar工具進行構建,輸出為源檔名前加lib後加.a字尾
由此可見,庫檔案都是由.o檔案組合而成
區域性靜態變數
使用區域性靜態變數,來控制第一次呼叫函式和未來呼叫函式的不同操作
static
bool wait =
false;if
(wait)
return0;
}wait =
true
;return
0;
C 實現記事本
今天我用c 編了乙個記事本,效果如下 開啟txt openfiledialog1.filter 文字檔案 txt txt if openfiledialog1.showdialog dialogresult.ok 有乙個openfiledialog1元件 儲存txt 檔案不為空才可以儲存if thi...
個人記事本
size t strlen const char s the strlen function calculates the length of the string s,excluding 不包括 the terminating null byte 0 計算長度時,不包括末尾的結束符 0 但是,換行...
記事本 陳慧琳
翻開隨身攜帶的記事本 寫著許多事都是關於你 你討厭被冷落 習慣被守候 寂寞才找我 我看見自己寫下的心情 把自己放在卑微的後頭 等你等太久 想你淚會流 而幸福快樂是什麼 愛的痛了 痛的哭了 哭的累了 日記本裡頁頁執著 記載著你的好 像上癮的毒藥 它反覆騙著我 愛的痛了 痛的哭了 哭的累了 矛盾心裡總是...