Использование перечисления в качестве параметра и типа возврата в функции в C
Если бы я решил использовать enum, такой как этот:
typedef enum {
FALSE, TRUE = !FALSE
} bool;
в качестве параметра и типа возврата в этой функции:
bool foo(bool param)
{
<do something>
return TRUE;
}
Это вызвало бы какие-либо проблемы? например, через компиляторы.
PS: я не собираюсь использовать #include <stdbool.h>
2 ответа
Так как вы не собираетесь #include <stdbool.h>
(что может привести к конфликтам), не должно быть проблем с вашим подходом.
Однако, если это большой проект, в который другие тоже вносят свой вклад, я бы не рекомендовал вам продолжать свой подход, поскольку они могут включать этот заголовок. Более того, если вы решите использовать этот код в своем будущем проекте, я вполне уверен, что не вспомнил бы эту деталь с этим предотвращением включения этого заголовка, за исключением случаев, когда вы хорошо это документируете.
Как я понимаю, это только пример, и ваши настоящие имена типов не будут конфликтовать с чем-то "стандартным". Использование перечислимых типов в качестве параметров и возвращаемых значений на 100% нормально и безопасно.