#include<assert.h>
#include<stdio.h>
**#include<stdlib.h>**
#include<string.h>
**#include<stdlib.h>**
#include<time.h>
stdlib.h 被包含两次,但为什么?
最佳答案
C 标准中只有一个非幂等标准头:<assert.h>
.
C++ 继承了这一点并添加了自己的改编: <cassert>
.
即使对于这些,如果不更改NDEBUG
,多重包含也没有效果。他们之间。
您自己的 header 以及您可能使用的其他库的 header 应使用包含防护(或 unportable but often working #pragma once
)。
如果您对 header 进行排序(首先包括实现文件自己的 header ),您可以轻松消除重复项,而无需依赖它。
关于c++ - 为什么在 C/C++ 中重复包含一些头文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29112736/