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
не массив.