举例说明C语言中有无void的区别?最好解释一下

如题所述

c中void关键字,主要用在三个地方:
1.函数名前(返回值),如:
void fun(int a);//void用在这里表示函数没有返回值,此函数不能放在=的右边给其他变量等赋值,也不能用作其他函数的参数形成串式表达式。函数体中可以有return;但是注意return后没有数字或者需要返回的表达式。
2.函数参数中,如:
void fun(void);//这里表示函数没有参数需要传递,在调用函数时,不允许给函数参数。
3.*前,如:
int fun(void *a);//这里不是表示函数没有参数,而是指出这里函数参数可以是任意类型的指针,比如char*,int*等。
这个用法还常常出现在函数返回类型上。还有对一些不明确使用时将会指向何种类型指针的声明上,以及一些宏定义的寄存器等的地址被用来给其他指针赋值时,比如:
c库中对NULL的宏定义,
#define NULL ((void *)0)
经过这样定义用NULL给任何类型指针赋值就说的过去了,虽然不这样做并不一定不能通过编译,但是更容易让人理解。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-10-24
void就是无返回值的意思,
比如你只要写一个打印的函数,不需要返回值,
void Print()
{
printf("this is test.\n");
}
int main()
{
Print();
return 0;
}
这样函数只要void就行了
如需要返回值,如返回一个整数
int Add(int x,int y)
{
return x+y; //返回x+y的值
}
int main()
{
int i;
i=Add(1,2);//这样i得到3
printf("i=%d\n",i);
return 0;
}
就是这样的区别,不知能否理解.
第2个回答  2008-10-24
楼主的问题是有无VOID而已吧,其实呢区别到不是很大,只要你细心就没事。
因为当函数前面加了VOID,则这个函数是不带回值的,所以你就可以检测出函数中有return的错误了,相反,如果没加VOID,则有可能在提取函数地址时,将return 语句的值做为他地址使用了,所以呢,一般不返回的函数,都加个VOID来杜绝这种隐秘的错误发生
第3个回答  2008-10-24
函数声明时必须有返回值类型,如果函数没有返回值,使用void,如果没有写返回值类型,缺省是int

比如
main() 其实就是 int main() 函数要求返回整数
void main() 函数没有返回值
相似回答