Niedawno otrzymałem poprawkę, która używała __DARWIN_C_LEVEL
. Myślę, że osoba, która to zapewnia, używa OS X 10.10.Co to jest symbol preprocessora C_ __DARWIN_C_LEVEL?
Mam system operacyjny 10.9, 10.8 i 10.5 do testowania, ale żaden z nich nie wydaje się go definiować.
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
$
Istnieje wiele trafień w odniesieniu do niego, ale jego albo rip kodu źródłowego firmy Apple lub czyjegoś plastra . Confer, "__DARWIN_C_LEVEL" site:opensource.apple.com.
Jabłko używa go jak tak, ale to nie jest dla mnie jasne, co staramy się osiągnąć:
#if __DARWIN_C_LEVEL > __DARWIN_C_ANSI
#define _POSIX_ARG_MAX 4096
#define _POSIX_CHILD_MAX 25
...
#endif
Co jest __DARWIN_C_LEVEL
iw jaki sposób powinny być stosowane?
Czy to pytanie nie byłoby lepiej zadawane na połączonej stronie? – Olaf
może różnica między używaniem ansi C lub C89 lub C99 lub C11? –
Spójrz na linie 582 z /usr/include/sys/cdefs.h –