杨宗德讲void 修饰函数返回值和参数。
1、如果函数没有返回值,那么应声明为void 类型。在C 语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。但是许多程序员却误以为其为void 类型。例如:
add ( int a, int b )
{
return a + b;
}
intmain(int argc, char* argv[]) //甚至很多人以为main 函数无返回值 //或是为void 型的
{
printf ( "2 + 3 = %d", add ( 2, 3) );
}
程序运行的结果为输出: 2 + 3 = 5。这说明不加返回值说明的函数的确为int 函数。
因此,为了避免混乱,我们在编写C 程序时,对于任何函数都必须一个不漏地指定其类型。如果函数没有返回值,一定要声明为void 类型。这既是程序良好可读性的需要,也是编程规范性的要求。另外,加上void 类型声明后,也可以发挥代码的“自注释”作用。所谓的代码的“自注释”即代码能自己注释自己。
2、如果函数无参数,那么应声明其参数为void。在C++语言中声明一个这样的函数:
int function(void)
{
return 1;
}
则进行下面的调用是不合法的:function(2);
因为在C++中,函数参数为void 的意思是这个函数不接受任何参数。但是在Turbo C 2.0 中编译:
#include "stdio.h"
fun()
{
return 1;
}
main()
{
printf("%d",fun(2));
getchar();
}
编译正确且输出1,这说明,在C 语言中,可以给无参数的函数传送任意类型的参数,但是在C++编译器中编译同样的代码则会出错。在C++中,不能向无参数的函数传送任何参数,出错提示“'fun' : function does not take 1 parameters”。所以,无论在C 还是C++中,若函数不接受任何参数,一定要指明参数为void。
杨宗德讲void 修饰函数返回值和参数,就讲到这里,要了解更多程序开发的课程,就来良师益友网杨宗德程序开发·精讲堂。