VC自动生成的文件上都有
#if!defined(...)
#define ...
...
#if _MFC_VER>1000
#pragma once
#endif
...
...
#endif如果我没弄错的话,中间那一串是说这个文件只被include一次,但是上面的
#if!defined 已经保证了只被include一次啊,这样是不是多余呢

解决方案 »

  1.   

    #pragma once 是保证只被编译一次,跟include 是有区别的
      

  2.   

    msdn上说是只被include一次啊下面是它的说明:
    #pragma onceSpecifies that the file, in which the pragma resides, will be included (opened) only once by the compiler in a build. A common use for this pragma is the following://header.h
    #pragma once
    // Your C or C++ code would follow:楼上说的意思我不太明白,只编译一次有什么区别吗,请说的详细一点
      

  3.   

    #ifndef __LBENDEC_H__
    #define __LBENDEC_H__......#endif的目的只是保证 ...... 的内容不被重定义, 如果不加上
    #pragma once
    你#include 几次,系统会编译几次,但加上#pragma once 则不会,
    主要目的是加速编译。