2009-06-12 15 views

Odpowiedz

40

__STDC_LIMIT_MACROS i __STDC_CONSTANT_MACROS to obejście umożliwiające programom w języku C++ korzystanie z makr z zakresu stdint.h określonych w standardzie C99, które nie są w standardzie C++. Makra, takie jak UINT8_MAX, INT64_MIN i INT32_C() mogą być już zdefiniowane w aplikacjach C++ na inne sposoby. Aby umożliwić użytkownikowi podjęcie decyzji, czy mają być używane makra zdefiniowane jako C99, wiele implementacji wymaga zdefiniowania __STDC_LIMIT_MACROS i __STDC_CONSTANT_MACROS przed dołączeniem stdint.h.

Nie jest to część standardu C++, ale została przyjęta w więcej niż jednej implementacji.

+1

To uderza mnie jako niebezpieczny nazewnictwa precedensu. To komplikuje życie standaryzatorów - czy muszą zwracać uwagę na to, jakie implementacje zrobiły z ich przestrzenią nazw. –

+1

nie dotyczy już C11, a tym samym C++ 11. – malat

-4

Makra nie są częścią standardu C++ i są prawdopodobnie używane do wewnętrznych celów w implementacji C++. Jeśli chcesz dowiedzieć się więcej na ich temat, powinieneś zadać pytanie z atrybutem atag, które wskazuje, czym jest ta implementacja.

3

Pod numerem C++ w stdint.h określa się, czy zdefiniować makra, takie jak INT32_MAX lub INT32_C(v). Aby uzyskać dodatkowe informacje, zapoznaj się z informacjami na temat platformy stdint.h.

Powiązane problemy