Лучший способ написать это как комментарий doxygen или запись в любой системе документации, которую вы используете, информируя абонентов о том, что они уже должны знать: NULL
недействительный указатель. Даже там, а не в специальном случае замечание о том, что NULL
недействительно, имеет смысл просто документировать аргумент x
как действительный указатель на тип foo
. Это также покрывает миллиарды других недопустимых значений указателя. Лично я предпочитаю не тратить время на документирование этого требования для каждой функции, а вместо этого документировать как общую часть моих интерфейсов библиотеки, которые, если не указано иное для конкретной функции, все аргументы указателя должны быть действительными указателями на объекты соответствующего типа.
Если вы действительно хотите, чтобы документировать это на уровне исходного кода тоже, C99 есть способ, с помощью:
void foo(int x[static 1]);
вместо одного из следующих действий:
void foo(int *x);
void foo(int x[]);
выше проверки для Значение NULL, это можно сделать с помощью MACRO? Это целесообразно ... –
Да, это можно сделать с помощью макроса, но это не рекомендуется. –