请问: C语言中的函数形参为void是什么意思~~

likeOwind 2011-06-11 09:44:12
RT
...全文
1720 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangfei1983 2011-06-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yq_118 的回复:]
显示的表示函数不接收参数。

如果声明为:
void foo();
那么带参数调用时,编译器也不会报错:
foo(1, 2);

这是历史原因造成的。
[/Quote]

你说的应该要根据编译器来做依据!vc6.0,我不清楚,vc2010,不管有没有(void),只要你带了参数,都会报错,我刚测试的
飞天御剑流 2011-06-11
  • 打赏
  • 举报
回复
void本身就是一种类型,它属于不完整类型,把void作为形参的时候,它表示这个函数没有参数。

在C++中,空形参表与形参为void是等价的,这是C++的明确规定,但在C中则是两回事,C中的空形参表仅表示函数的形参个数和类型不确定,并非没有参数,这会暂时挂起编译器的类型检查机制,造成类型安全隐患,所以在C中欲表示函数没有形参时,最好用int foo( void ),不要使用int foo( );
stein42 2011-06-11
  • 打赏
  • 举报
回复
显示的表示函数不接收参数。

如果声明为:
void foo();
那么带参数调用时,编译器也不会报错:
foo(1, 2);

这是历史原因造成的。
右脚小拇指 2011-06-11
  • 打赏
  • 举报
回复
就是没有返回值的函数,相当于 方法,
如果一个函数,你只是处理数据,而不需要返回,就在前面加上 Void
就想叫yoko 2011-06-11
  • 打赏
  • 举报
回复
有些讲编程规范的资料会建议
void fun()写成void fun(void)
其实完全没必要
ryfdizuo 2011-06-11
  • 打赏
  • 举报
回复
void foo(void) 可以理解为无参:返回值,函数参数都不需要参数
ryfdizuo 2011-06-11
  • 打赏
  • 举报
回复
void就是无类型。
亚细亚 2011-06-11
  • 打赏
  • 举报
回复
什么也是!什么也不是!
haidao123haidao 2011-06-11
  • 打赏
  • 举报
回复
指无参数,无返回值
SGYheDJF 2011-06-11
  • 打赏
  • 举报
回复
返回值无类型
陈砚羲 2011-06-11
  • 打赏
  • 举报
回复
可以把它理解为一个数据类型,但又不像int,float,double一样,系统不会给它分配空间,就相当于一个空类型。
proghua 2011-06-11
  • 打赏
  • 举报
回复
指没有参数
Lactoferrin 2011-06-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 liangfei1983 的回复:]

引用 5 楼 yq_118 的回复:
显示的表示函数不接收参数。

如果声明为:
void foo();
那么带参数调用时,编译器也不会报错:
foo(1, 2);

这是历史原因造成的。


你说的应该要根据编译器来做依据!vc6.0,我不清楚,vc2010,不管有没有(void),只要你带了参数,都会报错,我刚测试的
[/Quote]
你扩展名是cpp吧
AnYidan 2011-06-11
  • 打赏
  • 举报
回复
指明没有参数,
以前老风格的函数声明可以不写 形式参数,为了区别之,告诉 compiler, 要进行参数的类型检测(以前不检测数的类型)
stein42 2011-06-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 liangfei1983 的回复:]

引用 5 楼 yq_118 的回复:
显示的表示函数不接收参数。

如果声明为:
void foo();
那么带参数调用时,编译器也不会报错:
foo(1, 2);

这是历史原因造成的。


你说的应该要根据编译器来做依据!vc6.0,我不清楚,vc2010,不管有没有(void),只要你带了参数,都会报错,我刚测试的
[/Quote]

我说的是C语言,不是C++。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧