☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

include 指令应位于文件的起始部分

3.1.5 ID_badIncludePosition
目录 › next › previous

include 指令之前的代码只应为预编译指令或注释,否则不利于阅读和维护。

用于包含模板实现文件的 include 指令可不受本规则限制,但相关文件的命名应与普通头文件有所区别。

示例:

#include "a.h"   // Compliant
extern int i;
#include "b.h"   // Non-compliant
extern
#include "c.h"   // Non-compliant, undefined behavior

如果声明的一部分在头文件内,另一部分在头文件外,会导致标准未定义的行为。

依据

ISO/IEC 9899:1999 7.1.2(4) ISO/IEC 9899:2011 7.1.2(4) ISO/IEC 14882:2003 17.4.2.1(3) ISO/IEC 14882:2011 17.6.2.2(3) ISO/IEC 14882:2017 20.5.2.2(3)

参考

MISRA C 2012 20.1 MISRA C++ 2008 16-0-1
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.