0

我想不通这个...

我有 object.h 看起来像这样

struct basicObject {
       int x, y;
}

void objectSet (int x, int y);

现在我需要在我的主文件中包含 object.h,但我还需要在另一个名为 svg.c 的文件中包含 objectSet 函数和结构

svg.h 看起来像

#define OUTPUT_FILE "output.svg"
#include "object.h"

void saveSVG (basicObject item);

但我的主文件还包括 svg.h!所以我得到了 struct basicObject 的“重新定义错误”。这显然与 object.h 被包含两次有关。我怎样才能解决这个问题?

4

2 回答 2

4

如果你打算多次引用同一个头文件,你应该使用包含保护,但你只需要在第一次包含它。#include

于 2012-10-04T22:11:58.833 回答
2

有两个主要选项。在你的头文件中,做

#pragma once

或将整个头文件包装在:

#ifndef MY_SVG_H
#define MY_SVG_H

... your code ...

#endif

进一步阅读:

于 2012-10-04T22:12:11.330 回答