何时可以使用“void()”,这样做有什么好处

时间:2011-03-23 02:15:45

标签: c function void

我最近开始学习C语言,并且已经注意到函数“void()”,但是,我想知道它的作用,它是最好的应用点,也许是虚空的替代品,可能更具生产力。谢谢。

4 个答案:

答案 0 :(得分:4)

没有名为void的函数,但可以使用返回类型void声明函数。这意味着该函数不返回值。

void DoSomething(...)
{
  ....
}

<强>更新

void也可用于向编译器指示该函数不接受任何参数。例如,

float CalculatePi(void)
{
 ....
}

答案 1 :(得分:4)

C中的

void有三种用途:

  1. 声明函数不返回值:

    void foo(int x);
    
  2. 声明函数不接受参数:

    int baz(void);
    
  3. (DANGER WILL ROBINSON!)要声明一个“通用指针”,可以传递给它,例如一个神奇的cookie,或者在回调中交给某人,然后再回到原来的类型。

    int register_callback(void (*foo)(void *baz), void *bar);
    
  4. 使用指向void函数的指针调用

    register_callback,该函数期望作为参数的指针可能意味着它的某些东西。在将来的某个(未指定的)时间,将调用该函数,以bar为参数。你会在某些类型的嵌入式管理人员和可重复使用的设备驱动程序中看到这种情况,尽管在任何地方都没有。

答案 2 :(得分:1)

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()都会产生编译错误。

答案 3 :(得分:0)

我认为没有void()函数。

但是,void关键字用于表示函数不返回任何内容,例如:

void MyFunction() {
   // function body here
}