关于重复包含

1、ifndef

#ifndef  __TEST_H__
#define __TEST_H__
//......
#endif

  该种方式依赖于宏名字不能冲突,可以保证天你哥哥文件不会被包含多次,即使内容完全相同的两个文件(不同目录下)。

  缺点宏名字冲突时会报错:导致头文件命名存在,编译器却找不到声明。

2、pragma

#pragma once
//.... 

  预处理指令,在头文件的最开始加入这条指令:该头文件只被编译一次。

  该条件也能保证同个文件不会被重复包含。同个文件指物理上的同个文件,并非内容相同的两个文件

  该指令有效避免使用宏名,也就避免了宏名字冲突的问题。

综上,1. #ifndef 由语言支持所以移植性好,#pragma 可以避免名字冲突

posted @ 2011-09-22 13:47  陈朋  阅读(387)  评论(0编辑  收藏  举报