И в чём проблема? ну занимает 4 байта и славно
Изучайте ru.cppreference.com/w/cpp/language/types
Другие языки программирования и технологии
[c++] не работает long int переменная объявленная как long int a; занимает всего 4 байта ((( Что может быть не так?
Сергей Романов
у меня поле в структуре порядка 10^12
судя по
http:// ru.cppreference.com/w/cpp/language/types
так и должно было быть
по стандарту не менее 32бит
и вообще завязываться на размер переменной очень плохая практика
http:// ru.cppreference.com/w/cpp/language/types
так и должно было быть
по стандарту не менее 32бит
и вообще завязываться на размер переменной очень плохая практика
Что значит не работает?
Изъясняйтесь точнее, она не трактор, не бурлак.
Или выдается ошибка, или данные не соответствуют ожидаемым?
Типы данных, заданные на новых трансляторах, могут не работать на старых компьютерах и ОС.
Пишите английским шрифтом.
Если чего не понимаете, распечатывайте до и после изменения переменной, сразу же.
Чтобы не набирать ошибочных имен, копируйте их через буфер, скопируйте в переносимую строку комментария все идентификаторы и ключевые слова.
Напишите программу, вылавливающую все русские символы, обнаруженные вне комментариев и печатаемых строк.
Изъясняйтесь точнее, она не трактор, не бурлак.
Или выдается ошибка, или данные не соответствуют ожидаемым?
Типы данных, заданные на новых трансляторах, могут не работать на старых компьютерах и ОС.
Пишите английским шрифтом.
Если чего не понимаете, распечатывайте до и после изменения переменной, сразу же.
Чтобы не набирать ошибочных имен, копируйте их через буфер, скопируйте в переносимую строку комментария все идентификаторы и ключевые слова.
Напишите программу, вылавливающую все русские символы, обнаруженные вне комментариев и печатаемых строк.
Сергей Романов
на каком блин старом компьютере??? у меня macbook pro retina, Windows 7 максимальная, Visual Studio 2010 Visual Studia экспресс выпуск. Проблема в том, что я пытаюсь запрогать базу данных, и в ней есть индексация, где номера элементов числа порядка 10^12. А использовать для индекса тип double неудобно. Или две переменные типа int тоже наворот. Но тут уже посоветовали long long int - работает-))
На практике это означает, что у тебя Винда или же прога/либа собрана под 32-битную UNIX-like систему.
Не используй long-и вообще, они непортируемые. На UNIX-like осях у них смысловая нагрузка - чтобы влезал указатель, на Винде - одбратная совместимость с 32-битным кодом, а в реале в мультиплатформенном коде хаос и попа, лучше уж int или long long int, с ними меньше хаоса.
Если только на Винде пишешь, то int даже на одну букву короче.
Если только на UNIX-like и тебе нужен целый тип для хранения указателя, то надежнее один раз typedef сделать, такие вещи часто портировать все равно приходится.

Не используй long-и вообще, они непортируемые. На UNIX-like осях у них смысловая нагрузка - чтобы влезал указатель, на Винде - одбратная совместимость с 32-битным кодом, а в реале в мультиплатформенном коде хаос и попа, лучше уж int или long long int, с ними меньше хаоса.
Если только на Винде пишешь, то int даже на одну букву короче.
Если только на UNIX-like и тебе нужен целый тип для хранения указателя, то надежнее один раз typedef сделать, такие вещи часто портировать все равно приходится.

long int весит 8-байт в x86-64 Linux-е.
Если нужно более длинное целое, пишите LONG LONG. Но многое зависит и от компилятора и версии операционной системы.
Похожие вопросы
- Что имеется ввиду под 4 байтами у типа данных int?(С++)
- Чем отличается в языке С++ объявление указателя на переменную int *a от int* a?
- Как осуществить операцию сложения в с++ без операции присваивания ? int a=5; int b=6; int c=a+b; ( без "= ")
- Почему в этой программе переменная объявлена дважды? (C++, WinAPI)
- Для чего придумали тип boolean, если переменная этого типа всё равно будет занимать в памяти 1 байт?
- объясните как именно работает цикл (int i = 0; i < N; i++) в этом коде, почему нельзя написать i+1, вместо i++
- C++, какой смысл приписывать к числам букву L? (long N(0L), N % 2L) Чем грозит неприписывание? Особенн в Visual studio.
- СИ: "int a[3]={1, 2, 3}, * p=a+1" Чему равно значение выражения "p[0]-2"? И что вообще здесь происходит?
- Как на C++ создать массив типа int из стольких элиментов, что бы значение бралось из перемнно count ?
- C++ не работает программа посмотрите пожалуйста))