スポンサーサイト
一定期間更新がないため広告を表示しています
#define countof(array) (sizeof(array)/sizeof((array)[0]))
int a[10];
int *p = a;
size_t n = countof(p);
voidへのポインタは, 任意の不完全型若しくはオブジェクト型へのポインタに, 又はポインタから, 型変換してもよい。任意の不完全型又はオブジェクト型へのポインタを, voidへのポインタに型変換して再び戻した場合, 結果は元のポインタと比較して等しくなければならない。つまり、相互に型変換できるのは、不完全型へのポインタとオブジェクト型へのポインタだけということになります。
構造体オブジェクト内では, 非ビットフィールドメンバ及びビットフィールドが置かれる単位は, 宣言された順に増加するアドレスをもつ。構造体オブジェクトへのポインタは, 適切に変換すれば, その先頭メンバ(又はビットフィールドならば, それが置かれた単位)を指す。さらに, その逆も成り立つ。構造体オブジェクトの中に名前のない詰め物があってもよいが, 先頭には名前のない詰め物があってはならない。
a == ((a / b) * b + a % b)
extern void hook(void);
if (hook != 0)
hook();
extern void hook(void);
void (* volatile func)(void) = hook;
if (func != 0)
(*func)();