Я почти закончил свою книгу C Primer Plus, и я собираюсь попасть в структуры и союзы и т. Д. И т. Д., Но я до сих пор не полностью понимаю, что именно означает ключевое слово void. Что делает пустота? Как это работает? И когда я должен его использовать?Что такое тип void и как он работает?
я понимаю, что
void function(void)
в основном говорит, что нет никакого возвращаемого значения. аргументов нет. я знаю, что вы можете использовать различные сценарии,
int function(void); //has a return of type int -- voids args
void function(int); //voids return type -- takes type int as an arg
я также понимаю, что
void * p = 0L;
действует код и что это в основном указатель на аннулируются с инициализируется значением 0 в длину.
но есть какое-либо значение или цель его использования таким образом
void k = 0;
или я просто опорожнять тип данных? и если да, то есть ли какая-либо полезность для аннулирования типа данных? , потому что от того, что я был в состоянии сделать вывод, что это очень полезно в функциях и указателях для работы с неопределимым типом данных, такими как
size_t fwrite(const void * restrict ptr, ...more args...);
, так как первый аргумент не фиксированный типа, моя книга описывает это как «тип catchall для указателей» и что «Pre-ANSI C использует для этого аргумента тип char *, который требует от вас фактических аргументов типа для этого типа».
Означает ли это, что я могу использовать любой тип данных? И если да, то это ограничивается указателями и функциями только?
Снова ... Меня не интересует, как преобразовать int в пустоту. Меня не интересует, является ли указатель-на-void действительным, а просто о том, как эффективно использовать это ключевое слово. Я беспокоюсь о том, «Когда я должен его использовать?» и «Как его использовать?».
Заранее благодарим за любые ответы.
спасибо. моя книга не входила в детали. это помогает прояснить некоторые недостающие детали из моего понимания того, что потенциально происходит с этими типами данных. также помогает напомнить, что указатель - это тип, который является тем, что ускользает из моей памяти. спасибо за помощь новичку C. Это мой первый «реальный программирующий язык», и я пытаюсь понять как можно больше основных понятий, насколько могу, по мере того, как я продвигаюсь дальше к своим исследованиям. – jargonjunkie