1,函数的定义与声明
(1)函数定义的一般格式:
{
声明语句部分;
执行语句部分;
}
函数的定义需要定义函数头函数体两部分,在程序开发过程中通常先开发函数,一些次要的函数或有待以后扩充和完善功能的函数暂时写成空函数,使程序在不完整的情况下调试部分功能,当函数执行到部分return语句时,流程就回到主函数。例如:
#include "stdafx.h"
int max(int n1,int n2)
{
return(n1>n2?n1:n2);
}
int _tmain(int argc, _TCHAR* argv[])
{
int max(int n1,int n2);
int num1,num2;
printf("input two number:\n");
scanf("%d%d",&num1,&num2);
printf("max=%d\n",max(num1,num2));
getchar();
return 0;
}
2,函数的参数与返回值
(1)函数有形参和实参两种,实参的个数,类型应该和形参的个数和类型一致。调用函数时,系统给形参分配存储单元,并把实参的数值传递给形参。C语言中实参和形参的结合采取的是“单向值传递”方式,只有实参传递参数给形参,形参不回传参数给实参。例如:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
float a,b,sum;
float add(float x,float y);
scanf("%f,%f",&a,&b);
sum=add(a,b);
printf("sum=%f\n",sum);
return 0;
}
float add(float x,float y)
{
float z;
z=x+y;
return z;
}
3.函数的调用
(1)函数调用时,被调用函数可以是库函数或用户自定义的函数。如果是库函数,一定要在本文件的开头加上头文件。例如:
#include "stdafx.h"
#include "math.h"
int GCD(int m,int n)
{
int p;
while(m%n)
{
p=m%n;
m=n;
n=p;
}
return n;
}
int LCM(int m,int n)
{
int p;
p=max(m,n);
return(m*m/p);
}
int _tmain(int argc, _TCHAR* argv[])
{
int m,n;
printf("input m,n:");
scanf("&d,%d",&m,&n);
printf("GCD:%d,LCMis%d\n",GCD(m,n),LCM(m,n));
return 0;
}