ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 июля
14702 Топик полностью
bialix (17.09.2004 15:28, просмотров: 1) ответил Алексей Мусин на Повторяю, нет никаких граблей, если не использовать NULL
осмелюсь Вам возразить. Есть предупреждение компилятора, которое побороть иначе чем 0L невозможно. 5й уровень удалось победить только переписав определения из stddef.h Я поступил таким образом:
// Вместо stddef.h использовать следующие определения

#if defined(NULL)
#undef NULL
#endif

#if defined(offsetof)
#undef offsetof
#endif

#if defined(__MODEL_SMALL__) || defined(__MODEL_MEDIUM__)

#define     NULL    ((void*)0)
#define offsetof(type,member) ((unsigned int)(&((type*)0)->member))

#elif defined(__MODEL_COMPACT__) || defined(__MODEL_LARGE__)

#define     NULL    ((void*)0L)
#define offsetof(type,member) ((unsigned long)(&((type*)0L)->member))

#else

#error  *** Please specify __MODEL_????__ macro for this project!!! ***

#endif