[an error occurred while processing this directive]
|
Что значит "неправильно читает числа"? Критерий тут может быть один - соответствие стандарту языка. Все остальное - фантазии. Нет у меня сейчас под рукой последнего стандарта С - только C++ ISO/IEC 14882 от 98 года. Читаю в разделе 2.13.1:
"The type of an integer literal depends on its form, value, and suffix. If it is decimal and has no suffix, it has the first of these types in which its value can be represented: int, long int; if the value cannot be represented as a long int, the behavior is undefined."
Ваша константа ни в int, ни в long int не лезет - значит, поведение компилятора стандартом языка неопределено, и полагаться на такие конструкции - моветон в любом случае. Другой вопрос - почему нет предупреждения? Возможно, это предупреждение просто отключено какой-нибудь библиотекой.
E-mail: info@telesys.ru