记得我以前学这个的时候,是这样理解的:
f(void)指定零参数,f()则对应不确定个数的参数。
如果用函数指针来理解,应该好说一些(当然我在这个程序中都用了不恰当的调用):
我觉得这个特性只有在用于函数指针的时候才有意义。
平时进行函数声明的时候,无参数的函数应该声明成f(void)
但是同样在C99 P120中:
我在C99标准中没有找到f()声明有匹配任意参数作用的话。
不知道这个是标准(可能我没找对地方),还只是GCC的扩展?
请大家指教。
关于函数参数(void与空)
不写void是K&R C中的。这个地方可以说是C的一个缺陷。但是现在,在任何一本书中都推荐使用void的写法,《C专家编程》中专门有提到这个。 只是现在各个标准都兼容以前的这种K&R写法。是兼容,已经不推荐使用了。 就好像在K&R C中,函数都是这样定义的: 现在已经不推荐使用了,但大多数编译器仍能通过而不报任何错误或者警告。 摘自:http://bbs.chinaunix.net/thread-513258-1-1.html |