九、函数
被调用的函数必须写在主函数之前,或者在主函数之前声明被调用的函数原型,
如:void sum(int begin,int end);
或者void sum(int,int);一般采用前者。
1、函数的定义和使用
什么是函数?
——函数是一块代码,接受零个或多个参数,做一件事情,返回零个或一个值。
如何调用参数?
——函数名(参数值);
——这些值会被按照顺序依次用来初始化函数中的参数。
函数的返回值(单一出口)
return停止函数的执行,并送回一个值。
——return;
——return 表达式;
没有返回值的函数
——void函数名(参数表)。
——不能使用带值的return(可以没有return)。
——调用的时候不能做返回值的赋值。
函数的返回值可以做什么?
——可以赋值给变量。
——可以再传递给函数。
——甚至丢弃。
2、函数的参数和变量
类型不匹配?
——调用函数时给的值与参数的类型不匹配是C语言传统上最大的漏洞。
——编译器总是悄悄替你把类型转换好,但是这很有可能不是你所期望的。
——后续的语言,C++/Java在这方面很严格。
传过去的是什么?
——形参/实参。(这种说法不适用)
——参数/传值。
没有参数时?
——void f(void) (推荐这种写法)
——void f()
在传统C中,它表示f函数的参数表未知,并不表示没有参数。
C语言不接受函数嵌套定义。
关于main?
——int main()也是一个函数
要不要写成int main(void)?
——return的0有人看吗?
Windows: if errorlevel 1 .....
Unix Bash: echo $?
Csh:echo $status