C在某种程度上并不完全是C++的一个子集.因此,我们可以通过更改名称(stdio.hto cstdio,stdlib.hto cstdlib)来使用C++中的大多数C函数/头文件.
我的问题实际上是一种语义.在C++代码(使用GCC编译器的最新版本),我可以打电话printf("Hello world!");,并std::printf("Hello world!");和它的工作原理完全一样.在我使用它的参考中也显示为std::printf("Hello world!");.
我的问题是,它是否更适合std::printf();在C++中使用?有区别吗?
stdio.h或者cstdio?为什么?       我从c ++参考中看到这一行cstdio:
库中的每个元素都在std namespace.
但我尝试了代码:
std::printf("hello world"); 
printf("hello world");
是否真的C++标头将名称放在std和全局名称空间中?
当我想size_t在C++中使用时,我应该包含<stddef.h>还是<cstddef>?我听过几个人说这<cstddef>是个坏主意,应该弃用.这是为什么?
我正在使用EXIT_FAILURE宏,所以我需要包含stdlib.h或cstdlib.但我不知道有什么区别.我应该使用cXXX样式头文件而不是XXX.h吗?
谢谢.
string.h和之间有什么区别cstring?
哪一个应该用于C,哪一个用于C++(如果有的话)?
C和C++是不同的语言,我们知道blababla.
但如果这些语言不同,为什么仍然可以使用malloc或free这样的函数?我确信C++有各种各样的尘土飞扬的东西,因为C,但是由于C++是另一种语言,为什么不删除这些东西,使它变得不那么臃肿,更干净清晰?
是因为它允许程序员在没有OO模型的情况下工作,还是因为某些编译器不支持C++的高级抽象功能?
c++ ×7
c ×2
c++-faq ×1
header ×1
header-files ×1
history ×1
include ×1
namespaces ×1
size-t ×1
std ×1