2014-12-13 5 views
1

Я использую несколько макросов (#define) в качестве констант конфигурации времени компиляции.Предоставить значения по умолчанию для макросов конфигурации

#define WS_T_1H 700 
#define WS_T_1L 150 
#define WS_T_0H 150 
#define WS_T_0L 700 
#define WS_LATCH_NS 6000 

Это в моем заголовочном файле.

Тем не менее, я хочу, чтобы пользователь мог переопределить их, когда они включают его - пока у меня это есть, но это очень многословно и уродливо.

#ifndef WS_T_1H 
#define WS_T_1H 700 
#endif 

#ifndef WS_T_1L 
#define WS_T_1L 150 
#endif 

#ifndef WS_T_0H 
#define WS_T_0H 150 
#endif 

#ifndef WS_T_0L 
#define WS_T_0L 700 
#endif 

#ifndef WS_LATCH_NS 
#define WS_LATCH_NS 6000 
#endif 

Мне интересно, если это правильный путь? Является ли это «лучшей практикой»?

+2

К сожалению, я считаю, что это единственный правильный способ сделать это. – Cornstalks

ответ

0

Это стандартная идиома для C. Если вам не нравится писать такой код (многие люди этого не делают), вы можете узнать autoconf, который предоставляет альтернативный синтаксис для определения макросов по умолчанию. Тогда autoconf напишет вам идиоматический код C для вас.

Смежные вопросы