比如stdio.h 与cstdio,我看网上说是将stdio.h中的函数放入了名称空间std中,那么在使用函数如printf时应该加上std::printf才对啊,但是实际上
#include<cstdio>
int main(void)
{
printf("csdn");
return 0;
}
与
#include<cstdio>
int main(void)
{
::printf("csdn");
return 0;
}
与
#include<cstdio>
int main(void)
{
std::printf("csdn");
return 0;
}
都可以通过编译,这是什么原因?哪一种才是标准的写法?
如::pthread_creat(&threadID,nullptr,threadfunciton,nullptr)
1,用VC6.0生成一个标准的helloworld来看的话
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("Hello World!\n");
return 0;
}
2,linux下的话,包含头文件
#include
可以使用也可以不使用
百度下"命名空间"。双冒号表示顶层的命名空间,加不加没有什么要求,这个是习惯问题,如果你在你的代码中不加using namespace的话,前面就得加std了。像string,cin,cout
题目类型干嘛要加Java。。
这是名字空间的问题,printf是c标函数,是不需要加std的,即使它已经被整合到了新标准的c++库中也不需要,整合的目的是为了避免和c++和c的名字冲突,但是c++输入输出使用的是io流,和c有本质的区别,所以不存在名字冲突。所以不需要加,是否加std,还要看这个函数是否包含在std名字空间中,关于名字空间,建议花点时间去学习一下,磨刀不误砍柴工,这些都是很有必要知道的。