GNU C++支持两条`#pragma'指令使同一个头文件有两个用途

C++支持两条`#pragma'指令使同一个头文件有两个用途:对象类的接口定义, 对象类完整的内容定义.

#pragma interface
(仅对C++)在定义对象类的头文件中,使用这个指令可以节省大部分采用该类的目标文件的大小.一般说来,某些信息(内嵌成员函数的备份副件,调试信息,实现虚函数的内部表格等)的本地副件必须保存在包含类定义的各个目标文件中.使用这个pragma指令能够避免这样的复制.当编译中引用包含`#pragma interface'指令的头文件时,就 不会产生这些辅助信息(除非输入的主文件使用了`#pragma implementation'指令).作为替代,目标文件 将包含可被连接时解析的引用(reference).

#pragma implementation
#pragma implementation "objects.h" (仅对C++)如果要求从头文件产生完整的输出(并且全局可见),你应该在主输入文件中使用这条pragma.头文件 中应该依次使用`#pragma interface'指令.在implementation文件中将产生全部内嵌成员函数 的备份,调试信息,实现虚函数的内部表格等. 如果`#pragma implementation'不带参数,它指的是和源文件有相同基本名的包含文件;例如, `allclass.cc'中, `#pragma implementation'等于`#pragma implementation allclass.h'.如果某个implementation文件需要从多个头文件引入代码,就应该 使用这个字符串参数.
不可能把一个头文件里面的内容分割到多个implementation文件中.

 

上一篇: linux下dd命令详解及应用实例   下一篇: ubuntu apt sources.list cn99

提交疑问

回顶部