Какой суффикс используется для длинных длинных констант? - PullRequest
4 голосов
/ 25 февраля 2009

Если я хочу использовать что-то вроде ниже в коде C:

if(num < 0x100000000LL) 

Я хочу, чтобы сравнение происходило по длинной длинной константе, но суффикс LL не работает в MSVC6.0, но работает в MS Visual Studio 2005.

Как мне заставить его работать в MSVC 6.0?

-Ajit

Ответы [ 3 ]

1 голос
/ 25 февраля 2009

Тип long long был стандартизирован в стандарте ISO C 1999 года, и ожидается, что он будет стандартизирован в C ++ в этом или следующем году (всякий раз, когда стандарт будет доработан). Как и все эти стандартные функции, были ранние и поздние пользователи. Комитеты по языковым стандартам, как правило, неохотно включают в себя то, что раньше не пробовали.

Visual C 6.0 был выпущен в 1998 году и поэтому предшествует любому стандарту с long long в нем.

1 голос
/ 25 февраля 2009

AFAIK, long long не поддерживается в MSVC 6.0.

Например, посмотрите на эту ветку обсуждения . Возможно, вместо этого работает __int64. В любом случае, я бы не знал, какой другой суффикс использовать.

РЕДАКТИРОВАТЬ: __int64, кажется, работает, и для вспомогательных функций, кажется, что суффикс вообще не требуется. Посмотрите, например, здесь . В конце этой страницы также есть обходной путь.

0 голосов
/ 25 февраля 2009

У меня нет копии VC 6.0 для проверки, но работает ли i64? (например, 12i64)

...