【发布时间】:2014-11-15 22:52:06
【问题描述】:
我几乎完成了我的 C Primer Plus 书,我即将学习结构和联合等...等等...,但我仍然没有完全掌握关键字 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;
是有效的代码,它基本上是一个指向 void 的指针,初始化值为 0 long。
但是以这种方式使用它有什么价值或目的
void k = 0;
或者我只是在取消数据类型?如果是这样,取消数据类型有什么用处吗? 因为据我所知,它在函数和工作指针中非常有用 具有不可定义的数据类型,例如
size_t fwrite(const void * restrict ptr, ...more args...);
由于第一个参数不是固定类型,我的书将其描述为“指针的笼统类型”,并且“Pre-ANSI C 对此参数使用类型 char *,这需要您可以将实际参数类型转换为该类型”。
这是否意味着我可以使用任何数据类型? 如果是这样,这是否仅限于指针和函数仅?
再次...我不关心如何将 int 转换为 void。我不关心指向无效的指针是否有效,而只关心如何有效地使用这个关键字。我担心“我应该什么时候使用它?”和“我应该如何使用它?”。
提前感谢您的任何回答。
【问题讨论】:
标签: c pointers types void void-pointers