C++,标准库头文件
既然是文件,就要有扩展名。可是他们都没有扩展名,这是怎么回事。直接就但是自己做的头文件,就有扩展名了(.h),这是怎么回事。能不能做成没有扩展名的东西。...
既然是文件,就要有扩展名。可是他们都没有扩展名,这是怎么回事。直接就但是自己做的头文件,就有扩展名了(.h),这是怎么回事。能不能做成没有扩展名的东西。
展开
4个回答
展开全部
我只能说只要文件就有扩展名是一种偏见,是windows给大家带来的一种不好的认识。例如Linux中文件很多都没有扩展名的,只靠文件信息来判断文件类型,也并没什么问题。
编程你也可以写没扩展名的啊,只是一般编译器会用扩展名区别你的源文件、头文件类型,这个毕竟要是只用源代码识别容易出问题。
楼上说的有点问题,C++的标准头文件确实都是没有扩展名的,至少C++ 1998标准以后都统一为无扩展名的形式了,使用C语言的标准库其实也是没有扩展名的,例如c语言中的<string.h>在新版c++标准(说新也是98年的老东西了)下应该写作<cstring>,注意区别它和c++的另一个头文件<string>是不同的。还例如<ctype.h>要写作<cctype>,反正就是原来C语言的头文件去掉扩展名加上一个c开头就是了。
因为这些头文件就算没扩展名编译器也知道是标准库的头文件(因为你不能自己定义头文件和标准库的一个名啊,不一定不能,只是这样也没意义),所以也就没问题了。如果是你自己的文件,当然一般应该添加扩展名以便让编译器更好识别了
编程你也可以写没扩展名的啊,只是一般编译器会用扩展名区别你的源文件、头文件类型,这个毕竟要是只用源代码识别容易出问题。
楼上说的有点问题,C++的标准头文件确实都是没有扩展名的,至少C++ 1998标准以后都统一为无扩展名的形式了,使用C语言的标准库其实也是没有扩展名的,例如c语言中的<string.h>在新版c++标准(说新也是98年的老东西了)下应该写作<cstring>,注意区别它和c++的另一个头文件<string>是不同的。还例如<ctype.h>要写作<cctype>,反正就是原来C语言的头文件去掉扩展名加上一个c开头就是了。
因为这些头文件就算没扩展名编译器也知道是标准库的头文件(因为你不能自己定义头文件和标准库的一个名啊,不一定不能,只是这样也没意义),所以也就没问题了。如果是你自己的文件,当然一般应该添加扩展名以便让编译器更好识别了
展开全部
文件名称就是个标志而已,扩展名的作用就是告诉系统软件或者用户我是什么东西。假设cpp就是c++文件,txt就是纯文本文件,doc就是word文件,xls就是excel文件一样。只要你使用相关的东西直接打开也是一样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有哪个地方说文件必须要扩展名的啊,扩展名只是windows 为了区分不同的编码方式而已,通过不同的扩展名来调用注册表中注册的默认程序,从而达到解码的实现。没扩展名只要你解码方式正确一样可以达到效果。
况且,C++中头文件是有扩展名的。就是你说的.h。你说的是预处理命令中没有加.h么?这个是为了兼容C的。可以用<iostream>同时,也有一个"staxh.h"。具体有h和没h区别,一是为了上述的兼容问题,二是C++中使用C的标准头文件是需要加.h的。C++则不需要。
况且,C++中头文件是有扩展名的。就是你说的.h。你说的是预处理命令中没有加.h么?这个是为了兼容C的。可以用<iostream>同时,也有一个"staxh.h"。具体有h和没h区别,一是为了上述的兼容问题,二是C++中使用C的标准头文件是需要加.h的。C++则不需要。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
meiyou 关系 不必要深究、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询