Скільки байт unsigned long long? Це те саме, що unsigned long long int?
int32_t, uint64_tі т. д. C ++ отримає їх із майбутнім стандартом. Вони в заголовку <stdint.h>.
Скільки байт unsigned long long? Це те саме, що unsigned long long int?
int32_t, uint64_tі т. д. C ++ отримає їх із майбутнім стандартом. Вони в заголовку <stdint.h>.
Відповіді:
Підсумок: це 64 біти або більше.
unsigned long longце те саме, що unsigned long long int. Його розмір залежить від платформи, але гарантується стандартом C (ISO C99) щонайменше 64 біт. У long longC89 такого не було, але, мабуть, навіть MSVC його підтримує, тому він досить портативний.
У чинному стандарті C ++ (виданому в 2003 році) такого немає long long, хоча багато компіляторів підтримують його як розширення. Майбутній стандарт C ++ 0x підтримуватиме його, і його розмір буде таким же, як і в C, тобто принаймні 64 біти.
Ви можете отримати точний розмір у байтах (8 біт на типових платформах) із виразом sizeof(unsigned long long). Якщо вам потрібні рівно 64 біти, використовуйте uint64_t, що визначено в заголовку <stdint.h>разом із купою пов’язаних типів (доступно в C99, C ++ 11 та деяких поточних компіляторах C ++).
sizeof(char) гарантовано поверне саме один . Він повертає, наскільки великий операнд за кількістю байтів, а не за кількістю "символів". Таким чином, його не байти "на більшості платформ" його байти на кожній платформі.
charі байте, ви маєте рацію. Якщо ви рівняєте charі октет , то це змінюється.
sizeof(long long) == 1і це буде відповідати.
Принадність С ++, як і С, полягає в тому, що розмір цих речей визначається реалізацією, тому немає правильної відповіді без вказання компілятора, який ви використовуєте. Це два однакові? Так. "long long" - це синонім "long long int" для будь-якого компілятора, який прийме обидва.
Має бути не менше 64 біт. Крім того, що це визначено реалізацією.
Строго кажучи, unsigned long longне є стандартом для C ++, поки не буде стандартом C ++ 0x. unsigned long longє "специфікатором простого типу" для типу unsigned long long int(тому вони є синонімами).
long longБезліч типів також в C99 і було загальне розширення компіляторів C ++ ще до того , стандартизовані.
Використовуйте оператор sizeof, він дасть вам розмір типу, виражений у байтах. Один байт - це вісім бітів. Дивіться таку програму:
#include <iostream>
int main(int,char**)
{
std::cout << "unsigned long long " << sizeof(unsigned long long) << "\n";
std::cout << "unsigned long long int " << sizeof(unsigned long long int) << "\n";
return 0;
}