2012-03-31 2 views
4

Я хотел бы знать, можно ли использовать VC++ LP64 вместо LLP64, я знаю, что могу использовать другой компилятор, такой как GCC или Intel C++, но я бы как использовать VC++ по разным причинам.Как сделать MS Visual C++ использовать LP64 вместо LLP64

Нет необходимости в совместимости с заголовками Microsoft и т. Д., И я уже использую LIBC в качестве моей библиотеки времени исполнения.

+1

Почему? Если вам нужно 64-битное целое число, просто используйте 'int64_t'. –

+1

Используя эту логику, нет необходимости в 'long',' long long' или 'short': | – James

+0

Если вам нужен целочисленный тип с определенной шириной, вы должны использовать конкретный тип целочисленной фиксированной ширины. Для этого нужны эти типы. –

ответ

-2

вы можете попробовать использовать

\#define long long long 

или

/Dname[= | # [{string | number}] ] 

поэтому попробуйте

/Dlong="long long" 

, но это может быть опасно

+2

Это просто сломает каждый системный вызов и вызовет другие библиотеки, кроме как очень плохой практики кодирования. Не делай этого. Обратите внимание, что он заменит существующие вхождения «long long» на «long long long long». – rdb

2

Иногда "Вы не можете" является также ответ. Потому что это невозможно (предположительно для backwards compatibility).

Использование портативных типов вместо (#include <cstdint>):

  • int8_t - это 8-разрядное целое число
  • int16_t - 16-битовое целое число
  • int32_t - 32-битовое целое число
  • int64_t - 64-битовое целое

P.S. В качестве возможного обходного пути вы можете использовать Cygwin, который использует LP64 even on Windows.

Смежные вопросы