В частности, мой вопрос, учитывая этот макрос:Будет ли листок когда-либо терпеть неудачу в C?
#define FAKE_VAL(type) ((type)0)
... есть какое-то значение type
(включая структуры, указатели на функции и т.д.), где FAKE_VAL(type)
вызовет ошибку во время компиляции?
Я спрашиваю, потому что у меня есть макрос, который принимает указатель на функцию в качестве аргумента и должен найти размер возвращаемого значения. Я знаю, тип и количество аргументов указатель функции принимает, поэтому я планирую написать что-то вроде:
sizeof(fptr(FAKE_VAL(arg_type_1), FAKE_VAL(arg_type_2)))
arg_type_1
и 2
может быть в буквальном смысле ничего.
Я полагаю, что мы исключаем такие значения, как ';;;' или '2' для' type', правильно? – user2357112
@ uaer2327112: yep – Functino