__LP64__ на OS X -> Эквивалент Snow Leopard? - PullRequest
8 голосов
/ 18 ноября 2009

При работе на Leopard вы можете сделать что-то вроде:

#if __LP64__
   #pragma message ("64 bit Leopard issue")
#endif

Что такое снежный барс и снежный барс 64

И (главное)

Где бы я сам нашел этот ответ и не должен был спрашивать?

Ответы [ 2 ]

12 голосов
/ 18 ноября 2009

__LP64__ не является аббревиатурой от «Leopard 64». Это означает «длинные и указатели 64-битные». Он устанавливается на SnowLeopard точно в тех же условиях, что и на Leopard.

__LP64__ не будет иметь такого же поведения в Windows, потому что Windows использует другую 64-битную модель, в которой long не имеет ширину 64 бит Вместо этого в 64-битных окнах long имеет ширину 32 бита, а long long и указатели имеют ширину 64 бита. Это обычно называется моделью «llp64».

7 голосов
/ 18 ноября 2009

__LP64__ - это макрос препроцессора gcc, который не равен нулю всякий раз, когда вы строите 64-битную модель данных, независимо от версии OS X, на которой вы строите. Другой макрос, который будет отличен от нуля, это __x86_64__ при сборке для 64-битных процессоров Intel. Вы можете найти больше информации об этих и других макросах на developer.apple.com .

Вы можете указать цель развертывания для вашего проекта XCode, в которой будет указана минимально допустимая версия ОС, на которой может работать ваше приложение. Вы можете использовать этот параметр в своем коде для условного включения / отключения его частей; см. это сообщение в списке рассылки для получения дополнительной информации.

...