#include<assert.h>
#include<stdio.h>
**#include<stdlib.h>**
#include<string.h>
**#include<stdlib.h>**
#include<time.h>
stdlib.h包括两次,但为什么?
答案 0 :(得分:3)
C标准中只有一个非幂等标准标题:<assert.h>
C ++继承了它并添加了自己的改编:<cassert>
。
即使对于那些,如果不改变它们之间的NDEBUG
,多重包含也无效。
您自己的标头以及您可能使用的其他图书馆的标头应使用包含警戒(或unportable but often working #pragma once
)。
如果您对标题进行排序(首先包括实现文件自己的标题),您可以轻松地消除重复项,而不需要依赖它。