先说明一下为何要将代码写在不同的文件中,这对于初学者来说可能是多此一举的,因为明明在一个文件中就能完成的事,为何要在多个文件中分别写,繁琐还容易出错。先让我们明确一个观点,就是一个文件确实可以实现用多个文件来实现的代码,无非就是会出现一个文件成百上千甚至上完的代码而已。但是,多个文件的确是有它的优势所在。下面是我个人总结的一些优势:
1.可以使你的代码显得十分清晰简洁,因为在你主函数所在的文件里大底是一个框架和一些接口函数,这绝对是要比一堆函数看着舒服。
2.方便你及时查找各个函数,并对其进行修正。确实,利用对函数名F12也可以一步转到函数所在位置,但在一堆函数中查找你所需要的函数名可能也不是一件容易的事情。而你将函数声明写在头文件中,就可以通过头文件直接转到函数定义所在位置,这绝对是方便很多,尤其是当你代码行越来越长的时候,这个优势就更加凸显出来了。
3.防止代码的泄露,你可以将你所编写的函数接口的配置类型改成静态库,这样当你把静态库和头文件传给别人时,别人只能知道并使用这些函数,但无法得知函数具体代码。关于静态库的相关知识,可以看我的另一篇博客。http://t.csdn.cn/xrHhe(关于静态数据库(.lib)的一些个人见解)
但是,使用多文件编写代码,也会出现一些问题,下面是我个人遇到的一些情况。
1.同一个变量或者数组在不同文件中使用,需要在一个.c文件中声明,在需要用的文件中用extern+声明来使用。
2.include包含头文件可能会有嵌套包含,即你的头文件中包含我的头文件,我的同样包含你的头文件,这时候就会出现错误,解决方法有狠毒奥众,这里我介绍我常用的一种,即在头文件中添加一行代码:
#pragma once
本行代码的作用是处理重复出现的头文件,保证头文件只编译一次。