実装する人意外にいそう
#ifndef TEST_MACRO_H #ifdef TEST_MACRO_H_ARRAYDEF #define ARRAY_LENGTH(array) (sizeof(array) / sizeof(array[0])) #define ARRAY_COPY(array1, array2) do{debug("array1 = %d, array2 =%d\n", ARRAY_LENGTH(array1), ARRAY_LENGTH(array2)); int loop = ((ARRAY_LENGTH(array1) == ARRAY_LENGTH(array2)) || (ARRAY_LENGTH(array1) < ARRAY_LENGTH(array2)) ? (ARRAY_LENGTH(array1)) : (ARRAY_LENGTH(array2))); debug("loop = %d\n", loop); for(int i = 0; i < loop; i++){array2[i] = array1[i]; } }while(0) #define ARRAY_INVERT(array) do{int length = ARRAY_LENGTH(array); debug("length = %d\n", length); int buf[length];ARRAY_COPY(array, buf); for(int i = 0; i < length; i++){ array[i] = buf[length - i]; debug("array[%d] = %d, buf[%d] = %d, i = %d\n", i, array[i], i , buf[i], i); }}while(0) #define ARRAY_ZEROCLEAR(array) do{ for(int i = 0; i < ARRAY_LENGTH(array); i++) array[i] = 0; }while(0) #endif #endif
使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)
コメント投稿には、twitter認証が必要です。
Twitter認証
includeガードかと思ったけどifndefの直後にifdefとか使わせる気ないやん