函数的定义格式(function definition)如下:

return-type function-name(parameter declarations, if any)
{
  declarations
  statements
}

由函数计算并返回的值是通过return语句(statement)来实现. return后面可以跟任何表达式: return expression;

函数并不需要返回一个值。一个不带表达式(expression)的return语句用来起到控制的作用,控制函数的终止(terminate),它并不会返回给调用者一个有效的返回值。  

在平时,我们会留意到在main函数的末尾有一个return语句。因为main也同样是和其它函数一样可能会返回给调用者,对于main来说,调用者实际上是程序所运行的环境。通常而言,返回值为0表示的是:正常的终止; 而返回值为非0表示的是:无用(unusual)或者错误(erroneous)的终止条件(termination conditions)

声明(declaration): int function1(int m, int n)

该声明处于main函数之前用来表明function1是一个期望得到两个int类型的参数并且返回值是int类型的函数(function)。 这样的声明,我们称之为函数原型(function prototype),并且该声明要和函数function1的定义(definition)和使用(uses)保持一致。而其中函数名称并不用保持一致。事实上,函数名称在函数原型(function prototype)中是非强制的(optional)。因此,对于函数原型我们可以写成如下的形式: int function1(int, int)

参考: 《The C Programming Language》- Chapter 1.7