«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Каков размер «пустоты» в C?

Каков размер «пустоты» в C?

Опубликовано 22 декабря 2024 г.
Просматривать:603

What is the Size of \

Вопрос: Понимание неопределенного размера «void»

В программировании на C ключевое слово «void» означает отсутствие типа. Возникает вопрос: каков размер "void"?

Ответ:

Тип "void" не имеет определенного размера в C. Это не допустимый тип для объектов или указателей, поэтому попытка использовать его как таковой приведет к ошибке компиляции. В частности, оператор:

void n;

недействителен, поскольку он пытается объявить переменную типа void, что недопустимо.

Расширение: Выделение и арифметика указателей с указателями «void»

Хотя «void» не имеет размера, его можно использовать как тип для указатели. Однако такие указатели не указывают на какой-либо конкретный тип или размер данных.

Утверждение:

void *p = malloc(sizeof(void));

results в ошибке времени компиляции, поскольку попытка выделить память для типа «void» бессмысленна. Функция malloc требует допустимого типа данных для выделения памяти.

В GCC выражение sizeof(void) неожиданно оценивается как 1. Хотя может показаться, что оно присваивает размер «void», это просто деталь реализации, на которую не следует полагаться.

Кроме того, арифметика указателя p для «void» указателя не определена и не должна использоваться. Это связано с тем, что тип данных, на которые указывает p, неизвестен, что делает невозможным определить, что будет означать увеличение указателя.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3