defs.h #define NELEM(x) (sizeof(x)/sizeof((x)[0]))

トップページ
jupiteroak.hatenablog.com


defs.h
https://github.com/mit-pdos/xv6-public/blob/master/defs.h#L190

#define NELEM(x) (sizeof(x)/sizeof((x)[0]))

NELEMマクロは、引数xで指定された配列の要素数を算出します。
sizeof(x)は引数xで指定された配列全体のデータサイズ(バイト単位)の値となり、sizeof(x[0])はx[0](配列の要素1つあたり)のデータサイズ(バイト単位)の値となります。よって、sizeof(x)/sizeof(x[0])は引数xで指定された配列の要素数の値となります。