在VC中如何头文件之间的引用关系不恰当,可能导致重复定义,即使你事实上只定义了一次,不知道各位大虾是通过什么方法避免重复定义的。

解决方案 »

  1.   

    #ifndef _File_h_class test
    {};
    #endif
      

  2.   

    #ifndef YOUR_FILE_ID
    #define YOUR_FILE_ID#include <math.h> // 引用标准库的头文件

    #include “myheader.h”  // 引用非标准库的头文件

    void Function1(…); // 全局函数声明

    class Box     // 类结构声明
    {

    };
    #endif这是比较常用的方法,MFC也是这种方法,不过那个ID是加上了一个guid,这样发生重复的可能性更低了.
      

  3.   

    自己写一个类似stdAfx。h的文件,其中包含你工程中的所有头文件,再引用在你需要的地方。
      

  4.   

    两种方式:
    1: #ifndef XXX
       #define XXX   #endif2: #progma once
      

  5.   

    我就是这样写的,但是还是报error C2011的错误
    一个结构体typedef struct tagRCV_REPORT_STRUCTEx

    float m_fLastClose; // 昨收
    float m_fOpen; // 今开
    float m_fHigh; // 最高
    float m_fLow;
    }RCV_REPORT_STRUCTEx;
    还有一个类class CSTKDRV

    public:
    CSTKDRV();
    virtual ~CSTKDRV();
    int GetTotalNumber();
    int Stock_Quit(HWND hWnd);
    int (WINAPI * m_pfnStock_Quit)(HWND hWnd);
    int (WINAPI * m_pfnGetTotalNumber)();
    };
    应该怎么写不重复定义呢,谢谢了