effective C 學習筆記第一天

2021-06-21 16:29:16 字數 1094 閱讀 9165

1.視c++為乙個語言聯邦

為了理解c++ ,必須認識其主要的次語言。幸運的是總共只有四個:

(1)c ,說到底c++ 仍是以c 為基礎。blocks,statements,preprocessor,built-in data types,arrays,pointers

(2)object-oriented c++。這部分也就是c with classes 所訴求的

(3)template c++。這是c++ 的泛型程式設計(generic programming) 部分 ,是大多數程式設計師經驗最少的部分。

(4)stl. stl 是個template 程式庫

2.盡量以const, enum, inline 替換#define

(1)因為#define不被視為語言的一部分。

#define aspect ratio 1.653 改為:const double aspectratio = 1.653:  //大寫名稱通常用於巨集,

使用常量可能比使用#define 導致較小量的碼,

3.盡可能使用const

(1)const它允許你指定乙個語義約束,而編譯器會強制實施這項約束。

有關指標的const,指標自身,指標所指物體,兩者都(或都不)是const 如:

char greeting = "hello";

char* p = greeting;             //非const指標,非const資料

const char* p = greeting;       //非const指標,const資料

char*const p= greeting;       //const指標,非const資料

const char* const p = greeting; //const指標,const資料

通常,鍵字const 出現在星號左邊,表示被指物是常量

出現在星號右邊,表示指標自身是常量  (p18).

Effective C 學習筆記

學習effective c 已經有相當長的一段時間了,今天抽出時間又堵了一遍第一部分 c語言 c 以c語言為基礎,幾乎支援所有的c語言成分,例如區塊 語句 預處理 內建資料型別 陣列 指標等,c語言的侷限是 沒有模板 沒有異常 沒有過載 物件導向的c 也就是加上了物件特性的c,類 封裝 繼承 多型 ...

Effective C 學習筆記

1 c 是乙個複合式的語言 c 中不同部分有著不同的語言特性,例如 1.1 在c中傳遞形參時,按照值傳遞比按照指標傳遞效率更高 1.2 在物件導向程式中,物件要按照const引用而不是按照值傳遞 1.3 在stl程式設計中採取按照值傳遞方式 所以說c 中沒有統一的準則,要按照不同的特性採取不同的使用...

effective c 學習筆記

如果不考慮應用程式的使用場合,僅僅考慮語言的靈活性,我贊成作者的想法。但是不同的應用它會有不同的效能要求,所以語言的選擇,應該是用 最適合 條款去選擇。使用巨集定義常量,若定義在標頭檔案中,則所有包含標頭檔案的都可以使用。巨集定義,在預處理的時候進行替換。巨集定義一些簡單的函式,可以減少呼叫開銷,但...