C專家程式設計 1 穿越時空的迷霧

2021-07-28 19:55:52 字數 1147 閱讀 2270

任何人都可以享受程式設計。

關於time_t,什麼時候它會到達盡頭,重新回到開始呢?

#include

#include

int main()

2.編譯器設計者的金科玉律:效率(幾乎)就是一切

編譯器的效率包括兩個方面:執行效率(**的執行效率)和編譯效率(產生可執行**的速度)。除了一些開發和學習環境之外,執行效率起決定性作用。(保證結果正確的前提下)

關鍵字const不能把變數變成常量!在乙個符號前加上const限定符只是表示這個符號不能被賦值。也就是說它的值對於這個符號來說是唯讀的,但它並不能防止通過程式的內部(甚至是外部)的方法來修改這個值。const最有用之處就是用它來限定函式的形參,這樣該函式將不會修改實參指標所指的資料,但其他的函式卻可能修改它。這也許就是c和c++中const最一般的方法。

const可以用在資料上,如:const int limit=10;

在等式兩邊加上指標就有一定難度了:

const int *limitp=&limit;

int i=27;

limitp=&i;

這個**表示limitp是乙個指向常量整型的指標。這個指標不能用於修改這個整型數,但是在任何時候,這個指標本身的值卻可以變。這樣,它就指向了不同的位址,對它進行解除引用操作時會得到乙個不同的值。

sizeof()的返回型別是無符號數(unsigned int型別)。

int

array=;

#define total_elements(sizeof(array)/sizeof(array[0])

main()

修改為:

if(d<=(int)total_elements-2)
對無符號型別的建議:

盡量不要在**中使用無符號型別,以免增加不必要的複雜性。尤其是,不要僅僅因為無符號數不存在負值(如年齡,國債)而用它來表示數量。

盡量使用像int那樣的有符號型別,這樣在涉及公升級混合型別的複雜細節時,不必擔心邊界情況(如-1被翻譯為非常大的正數)

只有在使用位段和二進位制掩碼時,才可以用無符號數。應該在表示式中使用強制型別轉換,使運算元均為有符號數或者無符號數,這樣就不必由編譯器來選擇結果的型別。

C高階篇(穿越時空的迷霧)

c的產生源於乙個失敗的專案,由通用電氣公司 麻省理工學院與貝爾實驗室聯合創立的乙個龐大的專案 multics工程。雖然開發小組最終勉強的讓mulitics動了起來,但是他們還是陷入了泥淖,心灰意冷的貝爾實驗室專家們撤離該工程後,去尋找其他任務。其中一位名叫ken thompson的研究人員對另乙個作...

C專家程式設計 第一章 C穿越時空的迷霧

c詭異離奇,缺陷重重,卻獲得了巨大的成功.效率幾乎就是一切。巨集最好只用於命名常量,並為一些適當的結構提供簡捷的記法。巨集名應該大寫。千萬不要使用c預處理器來修改語言的基礎結構。ansi c中最重要的特性就是 原型 這種特性取自c 原型是函式宣告的擴充套件,函式名 返回型別 形參型別都是已知的。這就...

Chapter 01 穿越時空的迷霧

編譯器的效率包括兩個方面 執行效率 的執行速度 和編譯效率 產生可執行 的速度 執行效率起決定性作用 ken thompson在pdp 11上重新用組合語言實現了unix,dr創立了能夠同時解決多種資料型別和效率的 new b 語言 c 採用編譯模式而不是解釋模式,並引入型別系統,每個變數在使用前必...