#ifdef для 32-битной платформы - PullRequest
20 голосов
/ 09 апреля 2009

В приложении, которое я поддерживаю, мы столкнулись с проблемой ограничений дескриптора файла, влияющих на stdlib. Эта проблема касается только 32-битной версии стандартной библиотеки.

Я разработал исправление для своего кода и хотел бы его реализовать, но только при компиляции для 32-битного исполняемого файла. Какой символ препроцессора я могу использовать #ifdef, чтобы определить, компилируется ли код для 32- или 64-битной цели?

EDIT

Извините, не упомянул, код кросс-платформенный, Linux, Windows, Solaris и несколько других Unix-разновидностей, в основном с использованием GCC для компиляции. Какие-нибудь де-факто стандарты, которые я могу использовать кроссплатформенные?

РЕДАКТИРОВАТЬ 2

Я нашел несколько определений "__ILP23" и "__LP64", которые, кажется, могут работать ... обсуждение здесь объясняет предпосылки для платформы Unix. Кто-нибудь имел опыт использования этих определений? Это будет пригодно для использования?

Ответы [ 11 ]

0 голосов
/ 09 апреля 2009

Я считаю, что определение _WIN64

...