2007-04-25

C语言中,为什么有的自定义函数中,函数名前面有个 void ,例如void encryptchar(),它是说数据类型是空的吗

类型说明符“void”表示函数的返回值为空类型。

用void标识的函数常用于完成某项特定的处理任务,执行完成后不向调用者返回函数值,这类函数类似于其它语言的过程。

至于函数名后面括号中,只有一个void,则表示该函数无参数,函数不接受任何参数。 如果括号内什么也没有,则表示该函数无参数,实际调用时,即使有实参也不起作用。与只有一个void时类似。

如果函数中的参数前面有void,由表示这个参数存在,但是不可用,如果在函数体中使用这个参数就会报错。

如果函数有多个参数,其中标识void的参数会影响到实际参数的传递顺序情况,根据不同的情况(类型声明在参数之前和类型声明在参数之后)而有所变...全部

类型说明符“void”表示函数的返回值为空类型。

用void标识的函数常用于完成某项特定的处理任务,执行完成后不向调用者返回函数值,这类函数类似于其它语言的过程。

至于函数名后面括号中,只有一个void,则表示该函数无参数,函数不接受任何参数。

如果括号内什么也没有,则表示该函数无参数,实际调用时,即使有实参也不起作用。与只有一个void时类似。

如果函数中的参数前面有void,由表示这个参数存在,但是不可用,如果在函数体中使用这个参数就会报错。

如果函数有多个参数,其中标识void的参数会影响到实际参数的传递顺序情况,根据不同的情况(类型声明在参数之前和类型声明在参数之后)而有所变化。

严格的,函数参数必须声明其类型,便于编译器进行检查编译,否则可能会产生无法预料的错误。

例如:

下面的函数声明都是合法的

/*传统格式,不提倡*/

mysum(a,b)

int a;

int b;

{}

/*现代格式,提倡*/

mysum(int a,int b)

{}

下面两种带有void的参数说明,对实际参数调用时,传递值发生影响(TC)。

例如:调用函数 mysum(20,10);语句:

mysum(a,b)

void a;

int b;

{}

上面参数b的值得到的是10。

mysum(void a,int b)

{}

上面参数b的值得到的是20。

收起