【发布时间】:2016-04-25 09:14:17
【问题描述】:
我正在工作的代码有多个头文件和不同类的源文件face.cc, face.hh, cell.cc, cell.hh edge.cc edge.hh,头文件包含这样的内容,
#ifndef cellINCLUDED
#define cellINCLUDED
#ifndef faceINCLUDED
#define faceINCLUDED
我看透了http://www.cplusplus.com/forum/articles/10627/,看到include guard的写法是
#ifndef __MYCLASS_H_INCLUDED__
#define __MYCLASS_H_INCLUDED__
所以在我正在处理的上述代码中,编译器是否会自动理解它正在寻找face.hh 或cell.hh 文件?
更好的问题:写__CELL_H_INCLUDED__ 和cellINCLUDED 一样吗?
【问题讨论】:
-
不清楚宏定义与您的问题有什么关系。宏用于避免两次包含相同的标头(现在已弃用,取而代之的是
#pragma once)。请说明您想了解的内容。 -
对不起。我的问题很基本。我只是在阅读这篇文章,因此我对
cellINCLUDED是否与_CELL_H_INCLUDED_工作方式相同感到困惑 -
是的。唯一的要求是宏是唯一的。我会说推荐的系统更好。
-
不要使用双下划线。 stackoverflow.com/questions/228783/…
标签: c++ include-guards