有时候,我们在大的软件项目中需要避免一个头文件被同一个源文件引用多次,这个时候就需要用到include guard这个头文件保护符。
下面这串代码演示了如何使用#ifndef和#endif来避免头文件被重复引用
代码语言:javascript复制#pragma once
//Time Class definition
//member functions are declared in time.cpp
//prevent multiple inclusions of header
#ifndef TIME_H
#define TIME_H
//time class definition
class time
{
public:
Time();//constructor
void setTime(int, int, int);//set hour, minute and second
void printUniversal() const;//print time in universal-time format
void printStandard() const;//print time in standard-time format
private:
unsigned int hour;//0-23
unsigned int minute;//0-59
unsigned int second;//0-59
};
#endif // !TIME_H
我们可以看到,被包括住的部分,有一个判断,就是,如果头文件已经被引用,就不执行下面的操作。如果没有被引用,就define一下这个time.h
注意,我们需要用大写来代表头文件的名称,然后使用下划线来代表’ . ‘