古代的剑客们与
对手相逢时,无
论对手多么强大,
明知不敌,也要亮出自己的剑!
读者:我第一次把一个程序分成多个源文件, 我不知道该把什么放到 .c 文 件, 把什么放到 .h 文件。(“.h” 到底是什么意思?)
阿一:作为一般规则, 你应该把这些东西放入头 (.h) 文件中: • 宏定义 (预处理 #defines) • 结构、联合和枚举声明 • typedef 声明 • 外部函数声明 • 全局变量声明 当声明或定义需要在多个文件中共享时, 尤其需要把它们放入头文件中。特 别是, 永远不要把外部函数原型放到 .c 文件中。另一方面, 如果定义或声明为一个 .c 文件私有, 则最好留在 .c 文件中。
读者:完整的头文件搜索规则是怎样的?
阿一:准确的的行为是由实现定义的,这就是应该有文档说明。通 常, 用 <> 括起来的头文件会先在一个或多个标准位置搜索。用 “” 括起来的头文 件会首先在 “当前目录” 中搜索, 然后 (如果没有找到) 再在标准位置搜索。
读者:我在文件的第一个声明就遇到奇怪的语法错误, 但是看上去没什么问题。
阿一:可能你包含的最后一个头文件的最后一行缺一个分号
有时候,正是那些意想不到之人,成就了无人能成之事。
——图灵
正文完