LINUX.ORG.RU

а

#if defined(__FreeBSD__) || defined(__DragonFly__)

не подойдёт?

former_anonymous ★★★
()

Вот для такого и существуют autoconf-ы, да cmake-и, что бы при конфигурировании выяснить что включать надо.

Begemoth ★★★★★
()

ммм, а там чисто stdlib не работает?

Ну и на линухе тоже есть malloc.h который, судя по содержимому, должен работать. Хотя лучше, конечно, по стандарту всё сделать.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

> ммм, а там чисто stdlib не работает?

Как ни странно, сработало.
Я просто обычно тащил определение NULL из malloc.h, в новый проект перенес по-привычке.
Оно (malloc.h) не нужно?

pacify ★★★★★
() автор топика

> Как на Си получить список всех определенных лексем (через #define и -D)?

конечно же, никак.

хотя… можно пропатчить гцц, он на си ;)

> Требуется отличить FreeBSD от Linux

cpp -dM /dev/null

но это только для гцц, мб и для других компиляторов есть нечто подобное…

arsi ★★★★★
()
Ответ на: комментарий от true_admin

OK. Вопрос закрыт.

Всем спасибо.

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

> Я просто обычно тащил определение NULL из malloc.h, в новый проект перенес по-привычке.
> Оно (malloc.h) не нужно?

ты вообще о существовании стандарта на язык, на котором пишешь, знаешь?

ISO/IEC 9899:1999

7.17 Common definitions <stddef.h>

3 The macros are

NULL

which expands to an implementation-defined null pointer constant;

arsi ★★★★★
()
Ответ на: комментарий от pacify

> Я просто обычно тащил определение NULL из malloc.h

А оно в stddef.h. Стандартные функции и макросы на своих местах находятся, не нужно заморачиваться с определением платформы.

const86 ★★★★★
()
Ответ на: комментарий от arsi

> ISO/IEC 9899:1999

Я учил этот язык (Си) в 1996 году, тогда этого стандарта не было.
А по работе - стандарты обычно не читаю, они - слишком большие, а Гугль по ним не работает.

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

> Я учил этот язык (Си) в 1996 году, тогда этого стандарта не было.

ANSI C (1989)

4.1.5 Common definitions <stddef.h>

The macros are.

NULL

which expands to an implementation-defined null pointer constant;

разница только в номере главы.

> А по работе - стандарты обычно не читаю,

в мелкософте работаешь?

> они - слишком большие, а Гугль по ним не работает.

внезапно, по ним Ctrl+F работает.

arsi ★★★★★
()
Ответ на: комментарий от anonymous

> есть ссылка на standart 89?

да, в гугле. сцылка, есессно, варезная, так что не выложу :)

arsi ★★★★★
()
Ответ на: комментарий от arsi

> ANSI C (1989)

4.1.5 Common definitions <stddef.h>


Ok. Просто когда мне это понадобилось - у меня на машине не было
Интернета, а спрашивать Интернет по каждому чиху я привык только
с появлением анлимита в Кирове (2007-2008 годы). Я просто посмотрел
- где NULL был определен среди /usr/include/*.h

в мелкософте работаешь?


мелким фрилансером (утилитки на Си, скрипты на Python)

pacify ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.