模块化编程:
我们都看到别人写的程序很工整、规范、可读性很强,而且不是所有的程序、函数卸载一个main文件下面,整个工程下面都细分得很清楚,并且移植性高。
把程序或有独立整体功能的函数模块化成另外一个文件,然后统一管理,最终在main文件下#include"xxxx.h",然后有序调用。
下面就介绍怎么把程序模块化:
1. 我们先创建一个头文件,命名为people.h,添加内容如下:
#ifndef __PEOPLE__H_ //预编译头文件ifndef =>if no define ,就是如果工程里头没有定义这个都 //文件的意思,用__PEOPLE__H_常量判断
#define __PEOPLE__H_ //如果没有定义people.h这个头文件,就可以定义,如果已经定义,则不再编 //译这个头文件
//函数声明
char *run();
void say(char *str);
void eat(char str[]);
int calculate(int a, int b);
#endif//结束符
2.我们创建一个people.c文件,这个文件吧people.h,文件下的函数声明进行实现,添加以下内容:
#include "people.h"
#include "app.h"
#include
//函数实现
char *run()
{
discance = 100;//改变extern的值,就是改变定义这个extern 变量的值
char *ch="he has runned about ";
return ch;
}
void say(char *str)
{
printf("我说");
while (*str!=NULL)
{
printf("%c",*(str++));
}
printf("\n");
}
void eat(char str[])
{
char *p = str;
printf("我正在吃");
while (*p!=NULL)
{
printf("%c",*(p++));
}
printf("\n");
}
int calculate(int a, int b)
{
int sum;
sum = a*b;
return sum;
}
3.这样就完成了一对C(源文件)和H(头文件)的映射。
接下来,我们看看extern的使用,我们创建一个头文件app.h,添加内容如下:
#include
extern int discance;//在这里只能够声明,不能够初始化,否则会错误
4.最后我们就写最熟悉的main文件了:
#include "app.h"
#include "people.h"
//再次定义,并且初始化,证明这个外部变量是数据当前文件下的,
//外部只要引入app.h则可以使用sum,改变sum的数值,
//则相当于改变当前文件下的值
int discance = 0;
void main()
{
char *p;
printf("欢迎学习模块化编程\n");
eat("meat");
say("hello world");
p = run();
while(*p != NULL)
{
printf("%c",*(p++));
}
printf("%d meter !\n",discance);
}
这样就完成了简单的模块化编程,看不懂没关系,大家可以下载源文件,在VC上运行,有C语言版的,也有C++版的,大家可以进行比较一下哦。