Validate аргумент типа ARRAY в макросе предварительной обработки c / c ++ во время компиляции [duplicate]

На этот вопрос уже есть ответ:

Макрос размером с массив, который отклоняет указатели 9 ответов

Есть ли способ проверить во время компиляции в макросе c, что аргумент является массивом?

например, в этих двух макросах:

#define CLEAN_ARRAY(arr) \
    do { \
        bzero(arr, sizeof(arr)); \
    } while (0)

А такж

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

Я пробовал что-то, используяCTC(X) макро, но не смог найти способ проверить / предупредить, еслиarr не массив.

Ответы на вопрос(7)

Ваш ответ на вопрос