头文件所包含的内容,主要是变量声明(仅仅是声明,不能有定义,比如可以int i但不可以int i=0)、数据类型声明(如结构和联合等)、函数原型。总之,必须是声明性的东西,而不可以是与实体相关的定义,后者应在.cpp中写。这里需要把握的原则,是每个#include了的.cpp文件,都将把相关的内容全部插入到.cpp文件中去,只是不用你手敲那些东西而已,那么,十个.cpp都#include同一个文件的话,就有十份这样的东西存在程序代码中,万一有int i=0这样的定义语句,就等于同一个程序声明了十个全局int i,这是不允许的。写.h文件的时候,要仔细考虑写些什么、避免重复(你会看到书上某些介绍如何回避重复嵌入的技巧)、尽量精简。
你用vc,其实打开stdio.h这个文件来看看就可以看到它写什么了,你会看到EOF到底被宏定义成什么值之类,有时,是需要查看这些文件的。
基本上,你写程序代码时所写及所看到的,与机器所看到的,有许许多多你无法想象的差异,无需费力去“优化”那些代码,实际上被编译后,你的写法可能被废掉了。诸如好好的'A'不写要写成65之类,就是这种脱裤子放屁之举,虽然机器视字符'A'为整数65,但不等于不是机器的你也该把字符变质为数值,那是不同的两个概念。要喜欢这样,直接写01码得了。
[ 本帖最后由 TonyDeng 于 2012-1-8 03:25 编辑 ]
你用vc,其实打开stdio.h这个文件来看看就可以看到它写什么了,你会看到EOF到底被宏定义成什么值之类,有时,是需要查看这些文件的。
基本上,你写程序代码时所写及所看到的,与机器所看到的,有许许多多你无法想象的差异,无需费力去“优化”那些代码,实际上被编译后,你的写法可能被废掉了。诸如好好的'A'不写要写成65之类,就是这种脱裤子放屁之举,虽然机器视字符'A'为整数65,但不等于不是机器的你也该把字符变质为数值,那是不同的两个概念。要喜欢这样,直接写01码得了。
[ 本帖最后由 TonyDeng 于 2012-1-8 03:25 编辑 ]
授人以渔,不授人以鱼。