LINUX.ORG.RU

типы данных


0

0

Недавно начал изучать С. Дошёл до раздела типы данных ну и автор предлагает напечатать прогу и скомпилить ну и вот

print2.c: #include <stdio.h>

int main(void) { unsigned int un = 3000000000; short end = 200; long big = 65537; long long verybig = 12345678908642; printf("un = %u and not %d\n", un, un); printf("end = %hd and %d\n", end, end); printf("big = %ld and not %hd\n", big, big); printf("verybig = %lld and not %ld\n", verybig, verybig); return 0; }

потом компилю вот так вроде gcc -o print2 print2.c, а на выходе ошибка, что она означает

print2.c: In function `main': print2.c:5: warning: decimal constant is so large that it is unsigned

--------------------------------------------------------------------- gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7) ---------------------------------------------------------------------

anonymous

Только то что в целое число (обычное не long long) 14 цифр не лезет.
Больше 2**31-1 не вмещается.
Всего-то порядка 2 млрд. положительное имеем.
Можно добавить ll.

io ★★
()

А прочитать то, что сам написал, не в состоянии? warning это, что константа беззнаковая получилась.

baklan
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.