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

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

685
Как определить размер объекта в Python?

Я хочу знать, как получить размер объектов, таких как строка, целое число и т. Д. В Python. Связанный вопрос: сколько байтов на элемент содержится в списке Python (кортеж)? Я использую файл XML, который содержит поля размера, которые определяют размер значения. Я должен разобрать этот XML и сделать...

505
Почему sizeof (x ++) не увеличивает x?

Вот код, скомпилированный в dev c ++ windows: #include <stdio.h> int main() { int x = 5; printf("%d and ", sizeof(x++)); // note 1 printf("%d\n", x); // note 2 return 0; } Я ожидаю, xчто будет 6 после выполнения примечания 1 . Тем не менее, вывод: 4 and 5 Может кто-нибудь объяснить, почему...

309
Как найти «sizeof» (указатель на массив)?

Во-первых, вот код: int main() { int days[] = {1,2,3,4,5}; int *ptr = days; printf("%u\n", sizeof(days)); printf("%u\n", sizeof(ptr)); return 0; } Есть ли способ узнать размер массива, на который ptrуказывает (вместо того, чтобы просто указать его размер, который составляет четыре байта в 32-битной...

298
Как получить размер объекта JavaScript?

Я хочу знать размер, занимаемый объектом JavaScript. Возьмите следующую функцию: function Marks(){ this.maxMarks = 100; } function Student(){ this.firstName = "firstName"; this.lastName = "lastName"; this.marks = new Marks(); } Теперь я создаю экземпляр student: var stud = new Student(); так что я...

129
Почему sizeof (my_arr) [0] компилируется и равен sizeof (my_arr [0])?

Почему этот код компилируется? _Static uint32_t my_arr[2]; _Static_assert(sizeof(my_arr) == 8, ""); _Static_assert(sizeof(my_arr[0]) == 4, ""); _Static_assert(sizeof(my_arr)[0] == 4, ""); Первые 2 утверждения, очевидно, верны, но я ожидал, что последняя строка не удастся, поскольку я понимаю, что...

109
sizeof одиночный член структуры в C

Я пытаюсь объявить структуру, которая зависит от другой структуры. Хочу использовать из sizeofсоображений безопасности / педантизма. typedef struct _parent { float calc ; char text[255] ; int used ; } parent_t ; Теперь я хочу объявить структуру child_tтого же размера, что и parent_t.text. Как я...

103
Почему символьные литералы C представляют собой целые числа вместо символов?

В C ++ sizeof('a') == sizeof(char) == 1. Это имеет интуитивный смысл, поскольку 'a'является символьным литералом и sizeof(char) == 1определено стандартом. В C однако sizeof('a') == sizeof(int). То есть, похоже, что символьные литералы C на самом деле являются целыми числами. Кто-нибудь знает...

97
Почему sizeof int неправильный, а sizeof (int) правильный?

Мы знаем, что sizeofэто оператор, используемый для вычисления размера любого типа данных и выражения, и когда операнд является выражением, скобки можно опустить. int main() { int a; sizeof int; sizeof( int ); sizeof a; sizeof( a ); return 0; } первое использование sizeofневерно, тогда как другие...

93
Есть ли машины, где sizeof (char)! = 1 или хотя бы CHAR_BIT> 8?

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

90
Почему лямбда имеет размер 1 байт?

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

24
Побитовая операция приводит к неожиданному размеру переменной

контекст Мы переносим код C, который был изначально скомпилирован с использованием 8-битного компилятора C для микроконтроллера PIC. Обычная идиома, которая использовалась для того, чтобы не допустить повторения нуля беззнаковых глобальных переменных (например, счетчиков ошибок), заключается в...