stddef.h標頭檔案看意思就是標準定義,定義有一些變數和巨集。其中定義了null和offsetof()巨集,null指向0或者是無效指標,offsetof獲取乙個元素在結構中的偏移量。下面看看具體的**注釋和筆記。
#ifndef _linux_stddef_h
#define _linux_stddef_h
#include
/* * #undef 預定義取消指令
* * 如果null沒有被預定義,則會忽略#undef指令
* 一旦null被預定義了,則就會取消null的預定義
*/#undef null
#if defined(__cplusplus)
#define null 0 //null被賦值為0
#else
#define null ((void *)0) //null定義為無效的指標,將0強制轉化為(void*)型別的指標
#endif
//如果offsetof被定義了,就會取消該定義
#undef offsetof
#ifdef __compiler_offsetof
#define offsetof(type,member) __compiler_offsetof(type,member)
#else
/* * 先指出目的:就是求出member在type中的偏移量
* * 原理:(type *)0 將0強制轉化成(type*)型別的指標,記做type *ptr = (type *)0;
* ptr->member就是type中的元素member,然後&(ptr->member),取得member的位址
* 由於其基位址是0,最後在進行強制型別轉化成int型別,就獲取了member在type中
* 的偏移量了。
*/#define offsetof(type, member) ((size_t) &((type *)0)->member)
#endif
#endif
UIWindow標頭檔案學習
1.uiwindow 繼承自uiview uiwindow初始化時用到比較多的 uiscreen mainscreen bounds 2.uiwindowlevel 浮點型,預設是0.0 uiwindowlevelnormal uiwindowlevel uiwindowlevelnormal 0....
學習筆記 C 標頭檔案
c c程式的標頭檔案以.h為字尾。使用時需要在.cpp檔案中意 include的方式引入。標頭檔案作為一種包含功能函式 資料介面宣告的載體檔案,主要用於儲存程式的宣告,而定義檔案用於儲存程式的實現。函式原型 使用 define或const定義的符號常量 結構宣告 將結構宣告放在標頭檔案中是可以的,因...
c 標頭檔案 再學習
標頭檔案用於宣告而不是用於定義 當設計標頭檔案時,記住定義和宣告的區別很重要的。定義只可以出現一次,而宣告則可以出現多次。下列語句是一些定義,所以不應該放在標頭檔案裡 1 extern int ival 10 initializer,so it s a definition 2double fica...