(1)typedef用法:
typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字。這裡的資料型別包括內部資料型別(int,char等)和自定義的資料型別(struct等)。在程式設計中使用typedef目的一般有兩個,乙個是給變數乙個易記且意義明確的新名字,另乙個是簡化一些比較複雜的型別宣告。
//1、typedef的最簡單使用
typedef long byte_4;//給已知資料型別long起個新名字,叫byte_4。
//2、typedef與結構結合使用
typedef struct tagmystruct
mystruct;//這語句實際上完成兩個操作:1),2);
//1) 定義乙個新的結構型別
struct tagmystruct
;//分析:tagmystruct稱為「tag」,即「標籤」,實際上是乙個臨時名字,struct關鍵字和tagmystruct一起,構成了這個結構型別,不論是否有typedef,這個結構都存在。
//我們可以用struct tagmystruct varname來定義變數,但要注意,使用tagmystruct varname來定義變數是不對的,因為struct 和tagmystruct合在一起才能表示乙個結構型別。
//2) typedef為這個新的結構起了乙個名字,叫mystruct。
typedef struct tagmystruct mystruct;
因此,mystruct實際上相當於struct tagmystruct,我們可以使用mystruct varname來定義變數。
(2)函式模板與模板函式
這期間有涉及到函式模板與模板函式,類模板與模板類的概念 (類似於類與類物件的區別)
注意:模板類的函式宣告和實現必須都在標頭檔案中完成,不能像普通類那樣宣告在.**件中,實現在.cpp檔案中。
1、函式模板和模板函式
函式模板:函式模板的重點是模板。表示的是乙個模板,專門用來生產函式。
template
void fun(t a)
模板函式:是函式模板的例項化,是乙個函式。
fun(7);//隱式生成fun
fun(3.9);//隱式生成fun
fun(『b』);//隱式生成fun
shape* ps = new cirlcle;
fun(ps);//隱式生成fun
2、類模板和模板類
類模板:類模板的重點是模板。表示的是乙個模板,專門用於產生類的模子。
template
class vector
; 模板類:類模板的例項化,是乙個包含具體資料型別的類
函式模板的例項化是由編譯程式在處理函式呼叫時自動完成的,而類模板的例項化必須由程式設計師在程式中顯式地指定。即函式模板允許隱式呼叫和顯式呼叫而類模板只能顯示呼叫。
C語言小知識 qsort函式
二 qsort函式用法 總結qsort是c中自帶的快速排序函式,屬於標準庫,在做演算法題時會比較常用。本文參考菜鳥教程。void qsort void base,size t nitems,size t size,int compar const void const void base 是指向要排...
C語言 小知識
1.表示式的求值 初始值 x 1,y 1 z 1 求 x y z 答 從左到右順序依次求值,1 true 注意 因為 操作符的左運算元是true,所以沒有必要求值了.事實上c語言肯定不會繼續求值 有關規則,在按從左到右的順序對乙個邏輯表示式求值的時候,只要知道了它的實際結果,就不會對其餘部分求值.這...
c語言小知識
1 為什麼include標頭檔案後,就可以呼叫檔案中宣告的函式了?標頭檔案中一般只是函式和變數的宣告,編譯器需要知道函式傳遞的是什麼引數,否則呼叫的地方 不知道如何設定暫存器和棧等一些相關資訊。至於函式的位置,由於在其他的編譯單元中,需要鏈結 時才能找到。標頭檔案中包含了函式的宣告,其具體的函式 即...