在C和C++中,为什么每个.h文件通常都包含#ifndef #define #endif指令?

use*_*466 7 c c++ include-guards c-preprocessor

为什么每个.h文件都以#ifndef #define #endif开头?我们当然可以在没有这些指令的情况下编译程序.

jan*_*neb 14

这是一个所谓的"包括守卫".目的是防止多次包含文件多次解析.

  • @Autopulated:这就是他多次解析的意思.除了类重新定义之外,还有许多事情需要担心; 所有都被"多次解析"封装. (2认同)