C Primier讀書筆記(第六章2)

2021-08-14 17:55:47 字數 1840 閱讀 3379

頂層的const在過載時無法相互區分,底層的可以

void lookup(int i)

void lookup(const

int i)

void lookup(int* i)

void lookup(int* const i)

//重複宣告

void lookup(char& ch)

void lookup(const

char&)

void lookup(char *ch)

void lookup(const

char*ch)

對於那些只存在const差異的函式,嘗試用const-cast重用**。

const

string &shorterstring(const

string &s1, const

string &s2)

string &shorterstring(string &s1, string &s2)

如果我們在內層作用域之中宣告名字,他將隱藏外層作用域中宣告的同名實體。在不同的作用域中無法過載函式名。(思想:函式也是變數)

assert(expr),如果expr的值為假,則輸出錯誤提示資訊。並終止程式。

在預設情況下。ndebug是沒有被定義的巨集,如果定義了,那麼assert將不會有任何作用。

file當前檔名的字串字面值

_line當前行號的整形字面值

time檔案編譯時間的字串字面值

date檔案編譯日期的字串字面值

最佳匹配等級:

1.精確匹配:①實參型別和形參型別相同②實參從陣列型別或函式型別轉換為相應的指標型別③向實參新增或刪除i當即const

2.通過const轉換實現的匹配

3.通過型別提公升實現的匹配

4.通過算數型別轉換或指標轉換實現的匹配

5.通過類型別轉換實現的匹配

void func(long)

void func(float)

func(3.14)

//都需要實現型別轉換,存在二義性,不同的型別轉換之間沒有優先度

函式指標

bool (*pf)(const

string&,const

string &);

pf=lengthshorter;

pf=&lengthshorter;//兩種寫法都可以

pf(str1,str2)

(*pf)(str1,str2);//兩種等價呼叫

//呼叫指標形參

void usebigger(const

string &s1,const

string &s2,bool (*pf)(const

string &,const

string &));

void usebigger(const

string &s1,const

string &s2,bool pf(const

string &,const

string &));

//等價宣告

//返回函式的指標

int (*f1(int))(int*,int);

auto f1(int)->int(*)(int*,int);

//返回乙個指標,這個指標指向乙個函式,函式的引數是乙個整形指標和整形,返回值是乙個整形

第六章讀書筆記

linux系統將每個驅動都對映成乙個檔案,這些檔案稱為裝置檔案或驅動檔案,都儲存在 dev目錄中。編寫linux驅動程式的步驟 第1 步 建立linu x 驅動骨架 裝載和解除安裝linu x 驅動 第2 步 註冊和登出裝置檔案 第3 步z 指定與驅動相關的資訊 第4 步 指定 函式 第5 步z 編...

第六章 讀書筆記

第六章主要講的是第乙個linux 驅動程式 統計單詞個數。從這章開始進入了實戰階段,這一章首先介紹了linux 驅動的工作方式,linux 將每乙個驅動都對映成乙個檔案,這些檔案被稱為裝置檔案或驅動檔案,都儲存在 dev 目錄中,使得 linux 驅動互動就像是普通檔案互動一樣。編寫linux 驅動...

C Primer 讀書筆記 第六章

第 章 語句 簡單語句 表示式語句 expression r statement 乙個表示式加上結尾的分號,執行時導致該表示式被求值 空語句 null statement 只由乙個單獨的分號組成,當語法上需要乙個語句但邏輯上並不需要時使用 宣告語句 用於宣告或定義物件或類 復合語句 復合語句 com...