規範化的C 程式設計方法備忘錄 整數分類的細則

2021-09-30 08:30:20 字數 950 閱讀 1661

分類的選取

選取的原則是目的取值範圍,另外對於多選的,還要考慮傳值的方便和盡量提高處理器效能。

例1:宣告乙個變數n,用於儲存兩個任意指標間的差值:

要達到任意指標間的差值都能被恰當的儲存,可知只有指標型整數能滿足要求。寫成

size_t n;

例2:乙個通用的記憶體分配函式被宣告為void * alloc(cele); 給出並新增最適合cele的型別以完成該函式的宣告:

我們選用指標型整數。函式宣告寫成void * alloc(size_t cele);

例3:乙個記憶體分配函式為void * allocdw(dword cb); 完成它的實現:

例4:要儲存最多4000組資料到記憶體中,宣告乙個整數來表示該大小。

記憶體中資料塊的大小通常用指標型整數來表示。該整數的型別為size_t。

因為sizeof(size_t)>=sizeof(int)>sizeof(char),得到sizeof(size_t)>=2。而4000<65535,所以該整數的型別如果為word也是可以的。

例5:要儲存最多2m組資料到記憶體中,宣告乙個整數來表示該大小。

一般記憶體中資料塊的大小用指標型整數來表示。但是該例中資料多達2m。而從sizeof(size_t)>=sizeof(int)>sizeof(char)得到sizeof(size_t)>=2,顯然這個明確的2m超過了65535。至少應該用固定位寬型的dword型別來宣告。但是考慮到dword和size_t的位寬沒有固定的大小關係,因此**還需要用類似例3的方法處理。

[草稿階段]

整形提公升規則在整數分類中的實現機制

[草稿階段]

不同分類的整數間做比較的方法

[草稿階段]

規範化的C 程式設計方法備忘錄 整數宣告

形式上把整數分成3大類 通用型整數 int long short char,及他們的unsigned型別 特點 標準位元組的寬度 用於大小有限,又不強調最大值,或者最大值總保證滿足實際需要的場合。平台無關。不同的編譯器,同樣型別的整數,不同編譯器廠商規定的實際位元組的寬度可能不同,具體由編譯器廠商決...

boiz 的 C 備忘錄(一)

本文主要是記錄一些初級的但是有時候我自己容易忽略或者忘記東西,僅作備忘錄之用。1 銜接符 在c 中可以作為銜接符 忘了規範的術語是不是這麼叫了,汗自己乙個 例如 this is memo this is memo too 上面兩行在c 中,編譯器會認為是一行。不過 一般只在巨集定義中使用,因為如果是...

boiz 的 C 備忘錄(二)

1 c 函式引數入棧順序 從右到左 下面的例子用來驗證c 函式引數入棧順序 void test int i1,int i2,int i3 printf i1 d,i2 d,i3 d n i1,i2,i3 int i 0 test i,i,i 則輸出結果為 i1 3,i2 2,i3 1 2 乙個有趣的...