我得到了很多“重新定义x...x之前在这里定义的”。请问这个错误是什么意思?
发布于 2009-04-02 01:18:41
您需要限制每个文件仅包含一次。您可以通过两种方式完成此操作。
1)在您的头文件的顶部放置:
#pragma once或者2)如果你的编译器不支持,把它放在头文件的顶部/末尾:
#ifndef _MYFILE_H_
#define _MYFILE_H_
...
#endif将MYFILE替换为您的文件的名称,并替换...头文件的内容。
发布于 2009-04-02 07:09:04
该错误意味着在一个地方定义了一个符号,而在另一个地方定义了另一个符号。
在以下情况下可能会发生这种情况:
在最后一种情况下,当编译器没有原型可用时,实际函数和“隐式声明”之间将会出现不匹配。
这些情况可以通过以下方式避免:
确保函数原型只声明为once
extern语句声明原型时要小心。通过使用Mehrdad和BrianR.Bondyfiles.
static函数,则在源文件中;如果要由其他对象使用,则在头文件中。对于每个源文件,所有头文件只能包含一次发布于 2009-04-02 01:03:08
您可能包含一个头文件两次。确保您的头文件被#ifndef语句包围。
http://www.fredosaurus.com/notes-cpp/preprocessor/ifdef.html
https://stackoverflow.com/questions/707920
复制相似问题