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

避免在 C++ 代码中包含 C 头文件

3.1.7 ID_forbidCHeaderInCpp
目录 › next › previous

为了与 C 语言兼容,C++ 标准库也会提供 C 头文件,但在这种 C 头文件在 C++ 标准中是已过时的。

C 标准头文件均有对应的 C++ 版本,C++ 版本提供了更适合 C++ 代码的命名空间、模板以及函数重载等功能。C 标准不在 C++ 标准之内,在 C++ 代码中不建议使用 C 标准库的功能,如果确有必要,应使用 C++ 版本的头文件。

本规则是 ID_forbiddenHeader 的特化。

示例:

#include <assert.h>    // Non-compliant, use <cassert>
#include <ctype.h>     // Non-compliant, use <cctype>
#include <errno.h>     // Non-compliant, use <cerrno>
#include <float.h>     // Non-compliant, use <cfloat>
#include <limits.h>    // Non-compliant, use <climits>
#include <locale.h>    // Non-compliant, use <clocale>
#include <math.h>      // Non-compliant, use <cmath>
#include <setjmp.h>    // Non-compliant, use <csetjmp>
#include <signal.h>    // Non-compliant, use <csignal>
#include <stdarg.h>    // Non-compliant, use <cstdarg>
#include <stddef.h>    // Non-compliant, use <cstddef>
#include <stdio.h>     // Non-compliant, use <cstdio>
#include <stdlib.h>    // Non-compliant, use <cstdlib>
#include <string.h>    // Non-compliant, use <cstring>
#include <time.h>      // Non-compliant, use <ctime>
#include <wchar.h>     // Non-compliant, use <cwchar>
#include <wctype.h>    // Non-compliant, use <cwctype>

相关

ID_forbiddenHeader

依据

ISO/IEC 14882:1998 D.5-deprecated ISO/IEC 14882:2003 D.5-deprecated ISO/IEC 14882:2011 D.5-deprecated ISO/IEC 14882:2017 D.5-deprecated

参考

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