とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

小ネタ 配列の要素数を得るマクロ

#include <stdio.h>

#define LENGTH(array) ( sizeof(array)/sizeof*1;
printf("arrayOfPointer の要素数 %d\n", LENGTH(arrayOfPointer));

return 0;
}


array の要素数 8
arrayOfPointer の要素数 16

配列以外を LENGTH() マクロに渡しちゃダメよ。sizeof 使ってるんだから。

*1:array)[0]) ) int main(void) { int array[8]; int * arrayOfPointer[16]; printf("array の要素数 %d\n", LENGTH(array