为什么要使用int32_t
或memcpy
时gcc48和clang之间有不同的包含?
使用gcc后,在加入<iostream>
之后,您还应该包含<stdint.h>
和<string.h>
,以便使用int32t
和memcopy
使用clang时,您只需要包含<iostream>
,并且可以自由使用int32t
和memcopy
,自动包含stdint.h和string.h。
为什么? 我可以像gcc一样运行clang吗?
我使用Mac OS。
答案 0 :(得分:1)
可能那是因为clang的标准库恰好包含<stdint.h>
和<string.h>
已经在<iostream>
出于私人原因;这是不能保证的,而且,正如您所看到的,您的gcc
标准库不能以这种方式工作。
不要依赖这种行为;无论这些巧合如何,总是包含所需的文件。