Пусто в определении C?

Быстрый вопрос по следующему фрагменту:

#ifndef __LZO_MMODEL
#define __LZO_MMODEL            /*empty*/
#endif

В пустом определении, подобном этому, что оно представляет?

Он используется аналогичным образом:

#define lzo_bytep               unsigned char __LZO_MMODEL *
#define lzo_charp               char __LZO_MMODEL *

c lzo
person Madao    schedule 16.04.2020    source источник


Ответы (1)


Эти ответы не охватывают многие другие возможные случаи.

Другой пример.

#ifndef DEBUG
#define SINLINE static inline __attribute__((always_inline))
#else
#define SINLINE 
#endif

а потом

SINLINE void myfunc()
{
   /* ... */
}

и если функция DEBUG определена, она не будет встроена, что сделает ее более удобной для отладчика.

Есть много других вариантов использования.


person 0___________    schedule 16.04.2020
comment
Возможно, лучше вместо этого добавить этот ответ к связанному дублирующему вопросу. - person Dima Tisnek; 17.04.2020