为什么要使用clang和gcc,当你想使用`int32_t`或`memcpy`时,你的include是不同的?

时间:2013-10-18 02:59:46

标签: c++ macos gcc clang llvm

为什么要使用int32_tmemcpy时gcc48和clang之间有不同的包含?

使用gcc后,在加入<iostream>之后,您还应该包含<stdint.h><string.h>,以便使用int32tmemcopy

使用clang时,您只需要包含<iostream>,并且可以自由使用int32tmemcopy,自动包含stdint.h和string.h。

为什么? 我可以像gcc一样运行clang吗?

我使用Mac OS。

1 个答案:

答案 0 :(得分:1)

可能那是因为clang的标准库恰好包含<stdint.h><string.h>已经在<iostream>出于私人原因;这是不能保证的,而且,正如您所看到的,您的gcc标准库不能以这种方式工作。

不要依赖这种行为;无论这些巧合如何,总是包含所需的文件。