之前写C都是在一个文件里面写,没有写过工程类的文件组织结构。
手工解决问题才能明白问题的本质。
工具:
cl.exe link.exe 都是从vc6里面提取出来的.
面向接口
在C语言中,接口在头文件声明,头文件的文件扩展名通常为.h。该头文件声明了客户调用程序可以使用(不是定义)的宏、类型、数据结构、变量以及例程。
一个模块由两部分组成:接口和实现。接口指明模块要做什么,它声明了使用该模块代码可用的标识符、类型和例程;实现指明模块是如何完成其接口声明的目标的。
extern是编程语言中的一种属性,它表征了变量、函数等类型的作用域(可见性)属性,是编程语言中的关键字。当进行编译时,该关键字告诉编译器它所声明的函数和变量等可以在本模块或者文件以及其他模块或文件中使用。通常,程序员都只是在“*h”(头文件)使用该关键字以限定变量或函数等类型的属性,然后在其他模块或本模块中使用
extern
extern “C”这个声明的真实目的(任何语言中的任何语法特性的诞生都不是随意而为的,来源于真实世界的需求驱动。我们在思考问题时,不能只停留在这个语言是怎么做的,还要问一问它为什么要这么做,动机是什么,这样我们可以更深入地理解许多问题):实现C++与C及其它语言的混合编程。reference
面向接口编程,写一个C函数,先将实现的功能extern放到.h文件中,然后再实现。这样可以将自己需要用到的外部依赖引入,独立编译。