当前位置: 首页 > news >正文

浦口区网站建设搜索引擎优化方法案例

浦口区网站建设,搜索引擎优化方法案例,哪些是个人网站,用一个矿泉水瓶子做手工一、空值 在提到c/c的空值时,先扯远一些。谈一谈数学中的0,0的出现要晚于其它的数,而0的出现却引发了数学的极大的发展和进步。而在计算机科学中,在使用一个变量时,它的值的可能性有很多,其中,…

一、空值

在提到c++/c的空值时,先扯远一些。谈一谈数学中的0,0的出现要晚于其它的数,而0的出现却引发了数学的极大的发展和进步。而在计算机科学中,在使用一个变量时,它的值的可能性有很多,其中,就有可能会是啥都没有。一定会有很多有经验的开发者明白,不给变量赋值并不代表变量没有值,而是这个值可能是0,也可能是随机值。这就有可能在第一次使用时,出现一些意外的情况。所以,变量一定要给予初始赋值几乎成为了一条开发者必须遵守的规则。
既然要赋值,那提到的啥都没有,怎么表示呢?对,就是空值。在数学中,0代表着没有值,这不正好就是空值么?所以就简装的移植到了计算机科学中。所以在C/C++中,0就代表了空值。为了更好的表示这个空值,给它取了一个别名NULL。

二、NULL和nullptr

先看一下在常用的情况下,如何使用空值,代码如下:

#define ABC NULL
int main()
{int * ptr = NULL;return 0;
}

是不是由此觉得不过而已,就是一个简单的值的定义么。OK,确实如此。但细节要出来了,先看一下NULL的定义:

#ifndef NULL#ifdef __cplusplus#define NULL 0#else#define NULL ((void *)0)#endif
#endif

上面的代表有两个问题,一是为什么NULL在不同的语言中定义不同;二是为什么要把指针定义为空值。后者比较好回答,指针的地址指向空(0),则表示进入了安全管理区域,直接在开发中应用,编译器会报一个异常出现,可以理解成类似于“陷阱”的东西。而前者说起来就比较麻烦了。
先从标准本身来看,早期的c++标准(03以前)规定空指针常量是一个整数类型的右值常量表达式,其结果为必须为0。同时要求其必须可以转换为相对应的指针类型,并可以与其它指针类型(如对象或函数指针)区别开来。然后它规定还必须可以判断两个同类型的空指针相等。而C的标准规定,值为0的常量表达式或者可以转换为void*的表达式称为空指针常量,而如果将空指针常量转换为指针类型,其生成的类型指针必须能与其它对象或函数指针不同。
所以说定义规定的不同,自然就会有编译器支持的相关不同。这个要理解明白。因此,在C和C++中处理NULL,就需要重定定义一下,否则可能出现编译的问题。
所有的开发者都明白的是,一个语言如果长期保持与其它语言的兼容,势必带来更多的技术负担。所以c++做为一个后来者,完全可以自行定义一个空指针,而不必强力要求必须与C兼容(当然说和做是不是一回事,编译器厂商也不是铁板一块)。这时,就提出了nullptr.
nullptr为什么会出现?主要有几个原因:
1、为了保持C++标准的独立性
2、为空值提供一个专有名字并成为一个保留的关键字
3、能够区别于C中这种整数与空的混用,即无法在算数表达式中运算
4、支持标准中的提到的可以转换成任何类型的指针类型而无法被转换为其它非指针类型
5、支持C++异常机制(指针类型),虽然不建议使用异常机制

三、NULL和nullptr的比较

0做为一个整数,又代表空值,这让开发者和维护者,更让编译器处理起来比较麻烦。他们需要根据不同的上下文来判断,这个0到底是整数0还是一个指针的空值。而将NULL定义为0,从上面的代码可以看出,它其实就是一个宏定义。
宏定义的缺点对开发者们并不陌生。在近些年的C/C++编程中,一个重要的推荐方法就是在程序中尽量避免使用宏。
另外,使用NULL时,如果单纯从后面应用很难简单的判断出其为一个整数还是一个指针。对于模糊的东西,不光是开发者,编译器也会进一步的增加判断条件,这样的结果其实是一个不友好的现象。也不符合设计原则中的单一职责,或许本来就应该是你是你我是我,而不需要再通过一个ID来区分你我的不同。这等于是徒耗精力和时间。
同样,对于这种定义不清晰的标准,不同的编译器厂商可能就会有不同的理解,那么产生的结果可能就有所不同。这也是为什么在Windows上编译没有问题的代码可能到Linux上编译就有问题(排除不同接口定义不同)。这对于开发者来说其实是一件很痛苦的事情,维护着不同的平台的相同功能的代码,很可能会导致一些意外的“惊喜”。
而如果引入nullptr,则不必再考虑这些问题,桥归桥路归路,大路朝天,各走一边。你的问题就是你的问题,不要找我的问题。界线清晰了,无论是开发者还是编译器其实都喜欢这种清爽的风格。

四、总结

后发语言往往能看到借鉴语言的缺点和优点。这和学习一样,有前人的经验会进步更快。所以,从这一个小的问题,可以引申出来很广大的思考。从细节的区分到设计模式、原则和设计思想的改变。这就是老师经常说的“把薄书读厚了”。

http://www.dinnco.com/news/17438.html

相关文章:

  • 长沙网站收录高中同步测控优化设计答案
  • 免费制作企业宣传视频app苹果aso优化
  • 食品类网站模板乔拓云智能建站
  • 那里可以做PC28网站的淘宝seo搜索优化
  • 深圳外贸建站及推广电商平台推广公司
  • 免费网站建设公司代理网络营销活动推广方式
  • 深圳宝安网站建设报价河南网站建设哪个公司做得好
  • 内部优惠券网站怎么做新手如何自己做网站
  • 用js做动态网站seo快速整站上排名教程
  • 做外贸主要看什么网站友情链接交易平台源码
  • vs215开发python网站开发广东东莞最新情况
  • 做外贸如何浏览国外网站免费发布信息不收费的网站
  • 哪个网站可以做字体chatgpt 网站
  • b2b免费发布信息网网站优化服务
  • 网站到期续费吗淘宝搜索关键词排名查询工具
  • 制作一个动态企业网站百度投诉电话客服24小时
  • 网站开发语言怎么查沈阳网络营销推广的公司
  • 企业侧备案系统办理网站今天头条新闻
  • 怎样在建设部网站上查公司信息百度做广告
  • 网站开发外包售后维护合同范本企业网站推广优化公司
  • 用python做美食网站企业网站优化服务
  • 域名解析后怎么建网站google移动服务应用优化
  • 网站seo报表广告网
  • 男人女人做性关系网站如何让百度快速收录网站文章
  • 网站上做的广告有哪些种抚顺seo
  • 网页设计与制作工资西安网络优化哪家好
  • 武汉网站公司多少钱一年如何自己弄一个网站
  • 美食网站建设毕业设计品牌网络seo方案外包
  • 网站新闻对百度优化有用吗网络营销管理名词解释
  • 做网站有免费的服务器吗口碑营销