什么时候可以使用“void()”,这样做有什么好处
我最近开始学习C语言,并且已经注意到函数“void()”,但是,我想知道它的作用,它是最好的应用点,也许是void的替代品,可能更有效率。 谢谢。
没有名为void
的函数,但可以使用返回类型void
声明函数。 这意味着该函数不返回值。
void DoSomething(...) { .... }
更新
void
也可用于向编译器指示该函数不接受任何参数。 例如,
float CalculatePi(void) { .... }
C中的void
有三个用途:
-
声明函数不返回值:
void foo(int x);
-
声明函数不接受参数:
int baz(void);
-
(DANGER WILL ROBINSON!)要声明一个“通用指针”,它可以作为一个神奇的cookie传递,或者在回调中传递给某个人,然后将其转换回原始类型。
int register_callback(void (*foo)(void *baz), void *bar);
使用指向void函数的指针调用register_callback
,该函数期望作为参数指向可能意味着它的东西。 在将来的某个(未指定的)时间,将调用该函数,以bar为参数。 你会在某些类型的嵌入式管理人员和可重复使用的设备驱动程序中看到这种情况,尽管在任何地方都没有。
当void
作为函数参数有用时?
#include "stdlib.h" #include "stdio.h" void foo(); int main() { foo(5); // Passing 5 though foo has no arguments. Still it's valid. return 0; } void foo() { printf("\n In foo \n") ; }
在上面的代码片段中,尽管foo()
原型没有参数,但仍然可以将某些内容传递给它。 所以,为了避免这种事情发生 –
void foo(void) ;
现在可以保证将任何内容传递给foo()
会产生编译器错误。
我认为没有void()函数。
但是, void
关键字用于指示函数不返回任何内容,例如:
void MyFunction() { // function body here }