Недавно я получил патч, который использовал __DARWIN_C_LEVEL
. Я думаю, что человек, предоставляющий его, использует OS X 10.10.Что такое символ препроцессора __DARWIN_C_LEVEL?
У меня есть ОС 10.9, 10.8 и 10.5 для тестирования, но ни один из них не определяет его.
10,5:
$ uname -a
Darwin PowerMac.home.pvt 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:57:01 PDT 2009;
root:xnu-1228.15.4~1/RELEASE_PPC Power Macintosh
$ cpp -dM < /dev/null | grep -i darwin
$
10,8:
$ uname -a
Darwin riemann.home.pvt 12.6.0 Darwin Kernel Version 12.6.0: Wed Mar 18 16:23:48 PDT 2015;
root:xnu-2050.48.19~1/RELEASE_X86_64 x86_64
$ cpp -dM </dev/null | grep -i darwin
$
Там много хитов для него, но его либо плагиат исходного кода Apple, или чей-то патч , Confer, "__DARWIN_C_LEVEL" site:opensource.apple.com.
Apple, использует это как это так, но мне не ясно, что они пытаются достичь:
#if __DARWIN_C_LEVEL > __DARWIN_C_ANSI
#define _POSIX_ARG_MAX 4096
#define _POSIX_CHILD_MAX 25
...
#endif
Что __DARWIN_C_LEVEL
, и как его следует использовать?
Этот вопрос не будет задан на связанном сайте? – Olaf
может быть разница между использованием ansi C или C89 или C99 или C11? –
Посмотрите на строки 582 из /usr/include/sys/cdefs.h –