函数与程序结构
一、函数
1、
#include<stdio.h>
#include<stdlib.h>
#define NUM 100 //定义一个常量
//int count;//全局变量,全局作用域
//声明函数
int funcdef_arr(int array[]);//返回值 函数名(参数类型 参数名)
int funcview_arr(int *array);
double funcavg_arr(int *array,int n);
int main(void)
{
int array[NUM];//定义一个100个整型元素数组
funcdef_arr(array);//初始化数组
funcview_arr(array);//遍历数组
printf("%lf/n",funcavg_arr(array,NUM));
exit(0);
}
//定义函数
int funcdef_arr(int array[])
{
int count;//局部变量,语句块作用域(函数内可见)
for(count = 0;count<NUM;count++)
{
array[count] = rand()%100;
}
return 0;
}
int funcview_arr(int *array)
{
int count;for(count = 0;count<NUM;count++)
{
printf("%d\n".array[count]);
}
return 0;
}
double funcavg_arr(int *array,int n)
{
int count;int sum = 0;
for(count = 0;count<n;count++)
{
sum +=array[count];
}
return (double)sum/(double)n;
}
2、在一个项目中将各个功能和头文件还有主控函数分开来使项目更清晰。
myfunc.h:
2、在一个项目中将各个功能和头文件还有主控函数分开来使项目更清晰。
myfunc.h:
#include<stdio.h>
#include<stdlib.h>
#define NUM 100
int funcdef_arr(int array[]);
int funcview_arr(int *array);
double funcavg_arr(int *array,int n);
main.c:
#include "myfunc.h"
int count;//定义了文件作用域的变量
//static int count;//私有变量,外部不能访问
int main(void)
{
const int a = 10;//const是将变量a定义成只读变量,不可改变
int array[NUM];//定义一个100个整型元素数组
funcdef_arr(array);//初始化数组
funcview_arr(array);//遍历数组
printf("%lf/n",funcavg_arr(array,NUM));
a = 20;
printf("%d\n",a);
exit(0);
}
def.c:
#include "myfunc.h"
extern int count;//外部链接,可以使用在main文件里声明的count变量
int funcdef_arr(int array[])
{
for(count = 0;count<NUM;count++)
{
array[count] = rand()%100;
}
return 0;
}
view.c:
#include "myfunc.h"
extern int count;
int funcview_arr(int *array)
{
int count;for(count = 0;count<NUM;count++)
{
printf("%d\n".array[count]);
}
return 0;
}
avg.c:
#include "myfunc.h"
extern int count;
double funcavg_arr(int *array,int n)
{
int count;int sum = 0;
for(count = 0;count<n;count++)
{
sum +=array[count];
}
return (double)sum/(double)n;
}