发现有很多童鞋学了一年半载的C语言还不会多文件编程。很多人到现在一个程序都只有一个源文件(main.cpp或mian.c)其实C语言的多文件并不神秘,今天我来说说怎么多文件编程,顺便自己也小结一下。

跟着我一步一步来,很简单的哦!

现在先写一个简单的程序。保证学过C语言的你都能看懂。

#include<stdio.h>
int max(int x, int y);
int min(int x, int y);
int main()
{
	int a = 10;
	int b = 20;
	printf("max=%d\n", max(a, b));
	printf("min=%d\n", min(a, b));
}
int max(int x, int y)
{
	return x > y ? x : y;
}
int min(int x, int y)
{
	return x < y ? x : y;
}

这个程序够简单吧!

这个程序所有的函数实现都在同一文件中,代码量很少,所以你能够看懂。假如代码量很多时,你会发现这样的程序调试很费力。

为了体现C语言模块化的编程思想,我们可不可以将上面2个函数max,min的声明和实现放在两个文件里呢,答案是肯定的.

修改版
main.c : 放main函数
math.h : 放函数的声明
math.c : 放函数的实现

我们就可以将代码写成如下格式

main.c文件

#include<stdio.h>
#include"math.h"
int main()
{
	int a = 10;
	int b = 20;
	printf("max=%d\n", max(a, b));
	printf("min=%d\n", min(a, b));
}

math.h 文件

#pragma once
#ifndef MATH_H
#define MATH_H
int max(int x, int y);
int min(int x, int y);
#endif // !MATH_H

math.c文件

int max(int x, int y)
{
	return x > y ? x : y;
}
int min(int x, int y)
{
	return x < y ? x : y;
}

在这里呢要给大家强调两个点
.在我们包含自己所写的头文件时,用" "

实际上#include机制很简单,就是把#include所包含的文件中的内容直接复制到#include所在的位置并替换#include语句,所以main.c文件和下面的程序是等价的.

#include<stdio.h>
#pragma once
#ifndef MATH_H
#define MATH_H
int max(int x, int y);
int min(int x, int y);
#endif // !MATH_H
int main()
{
	int a = 10;
	int b = 20;
	printf("max=%d\n", max(a, b));
	printf("min=%d\n", min(a, b));
}

二.
有些小伙伴们可能对下面的代码有些陌生

#ifndef MATH_H
#define MATH_H

#endif

实际上这是为了头文件不重复包含,有些粗心的同学可能包含了两次头文件,这样就可以避免重复包含

#ifndef MATH_H  // if not define
#define MATH_H  // define

#endif         // 结束

这段代码是说 如果我们没有包含MATH_H头文件,我们就将MATH_H头文件包含进去
如果我们包含了两次,那么第二次判断时,我们已经包含了MATH_H头文件,我们就不会再包含MATH_H头文件,因此这样就可以避免重复包含

简单吧!一个简单的多文件工程就产生了。

当然代码量很少的时候不需要这么做,这里仅仅是为了演示喔!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐