杨宗德讲void 修饰函数返回值和参数


  杨宗德讲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 修饰函数返回值和参数,就讲到这里,要了解更多程序开发的课程,就来良师益友网杨宗德程序开发·精讲堂。