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。
收起