在C ++中包含跨多个文件的库

时间:2016-08-17 13:56:07

标签: c++ compilation sdl-2

我必须在Character类中创建一个Game对象。两者都包括SDL2。

Game类使用SDL代表SDL_BlitSurfaceSDL_UpdateWindowSurfaceCharacter类使用SDL代表SDL_Surface

有没有办法避免此包含中的冗余?编译器只包含一次SDL2吗?

2 个答案:

答案 0 :(得分:0)

  

编译器只包含一次SDL2吗?

如果包含的标题包含 include guard ,则为是。

如果标题包含任何定义,则必须包含一个包含保护,否则多次包含它会使程序生成错误。

我没有浏览SDL的所有标题,但我认为他们每个人都使用包含守卫。

  

我在Game.h和Character.h中都包含了“SDL.h”。对于源健康来说这是一个问题吗?

我不知道源健康是什么。如果Game.h取决于SDL.h中的定义/声明,则必须包含SDL.h。如果Character.h取决于SDL.h中的定义/声明,那么它也必须包含SDL.h。没有什么不妥。这很典型。

答案 1 :(得分:0)

在头文件中

,您需要添加以下代码:

#ifndef TEST_H
#define TEST_H
// your code
#endif

#pragma once

这可以帮助您避免多次包含课程!