Вопросы с тегом «sizeof»

sizeof относится к стандартному оператору C / C ++ для возврата размера в байтах выражения или типа данных.

3
Есть ли машины, где sizeof (char)! = 1 или хотя бы CHAR_BIT> 8?
На этот вопрос есть ответы на Stack Overflow на русском : Кто-нибудь встречал в своей практике sizeof (char)! = 1? Есть машины (или компиляторы), где sizeof(char) != 1? В стандарте C99 сказано, что sizeof(char)при стандартной реализации соответствия ДОЛЖНО быть ровно 1? Если да, то дайте мне номер раздела и ссылку. …
93 c  char  standards  sizeof  c99 

5
Почему лямбда имеет размер 1 байт?
Я работаю с памятью некоторых лямбд в C ++, но меня немного озадачивает их размер. Вот мой тестовый код: #include <iostream> #include <string> int main() { auto f = [](){ return 17; }; std::cout << f() << std::endl; std::cout << &f << std::endl; std::cout << sizeof(f) << std::endl; } Вы …
90 c++  c++11  lambda  c++14  sizeof 


5
Побитовая операция приводит к неожиданному размеру переменной
контекст Мы переносим код C, который был изначально скомпилирован с использованием 8-битного компилятора C для микроконтроллера PIC. Обычная идиома, которая использовалась для того, чтобы не допустить повторения нуля беззнаковых глобальных переменных (например, счетчиков ошибок), заключается в следующем: if(~counter) counter++; Битовый оператор здесь инвертирует все биты, и оператор верен, только если …

3
Почему размер типа данных отличается, когда значение напрямую передается оператору sizeof?
#include <stdio.h> int main() { char a = 'A'; int b = 90000; float c = 6.5; printf("%d ",sizeof(6.5)); printf("%d ",sizeof(90000)); printf("%d ",sizeof('A')); printf("%d ",sizeof(c)); printf("%d ",sizeof(b)); printf("%d",sizeof(a)); return 0; } Выход: 8 4 4 4 4 1 Почему выходные данные отличаются для одинаковых значений?
15 c  int  sizeof 

1
Как получить количество элементов в std :: array <T, N>, не создавая его экземпляр?
Есть std::array&lt;T, N&gt;::size(), но это не статично, поэтому требуется экземпляр std::array. Есть ли способ получить значение, которое он возвращает (который является Nиз std::array&lt;T, N&gt;) без необходимости создания экземпляра массива? Для обычного массива я мог бы использовать sizeof, но не вижу никакой гарантии, что sizeof(std::array&lt;T, N&gt;) == N * sizeof(T)это правда.
9 c++  arrays  c++11  sizeof 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.