时间:2015-03-09 来源:

C编译器剖析_4.2语义检查_表达式的语义检查(5)_结构体成员选择 【编程语言】

4.2.5         成员选择运算符

图4.2.28 CheckMemberAccess()

     接下来我们来看一下对“后加加”和“后减减”表达式的语义检查网页外包接活,例如a++和a--.与其相关的代码如图4.2.30所示.由图4.2.30第396和397行的注释,网页外包接活我们可以知道,网页切图价格UCC编译器会把a++和++a转换成a+=1来处理,div+css制作而把a--和--a转换成a-=1来处理,div+css报价第394行创建了一个语法树结点,兼职手机网页制作在第402行我们调用CheckExpression()来对赋值运算符+=或者-=进行语义检查.需要注意的是,psd转html结点expr的op域仍然保存着原有的“后加加OP_POSTINC”或“后减减OP_POSTDEC”等运算符,html切图制作这样在生成代码时网页外包接活,我们能为a++、a--、++a或者-- a进行区别,网页外包接活进而产生不同的代码.

     图4.2.29给出了表达式dt.a在语法分析后和语义检查后所对应的语法树web前端制作,对op域为OP_ID的语法树结点的语义检查是由exprchk.c中的CheckPrimaryExpression函数来完成的,web前端制作在语义检查后承接网页制作,域成员a在结构体struct Data中的偏移量offset等信息由图中的struct filed对象保存,div前端切图而结构体对象dt对应的符号则由struct symbol对象来存放.

图4.2.29 成员选择运算的语法树

图4.2.30 TransformIncrement()

     在C语言中web切图报价,在形如dt.a和ptr->a的后缀表达式中符合w3c标准,运算符.和->被称为成员选择运算符.函数CheckMemberAccess()用于对这些表达式进行语义检查,符合w3c标准与之相关的代码如图4.2.28所示.在表达式dt.a中网页外包接活,dt和a相当于是运算符.的两个操作数,jpg或psd转htmldt对应的语法树结点的类型应是记录类型web前端制作,图4.2.28第8行对此进行了判断;而在形如ptr->a的表达式中,web前端制作ptr对应的结点类型应为“指向记录”的指针承接网页制作,第15行的if语句对此进行了检查.第4行用于对成员选择运算符的左操作数进行语义检查,兼职手机网页制作结构体对象dt可当作左值,但由于函数的返回值只存放在临时变量中符合w3c标准,所以GetData().a也不可充当左值,第11行对此进行了设置.对ptr->a来说,网页外包接活左操作数不必是左值,即使是个临时变量也可,div+css制作例如在表达式((Data *)ptr2)->a中承接网页制作,强制转型后的结果((Data*)ptr2)就存放在一个临时变量中,兼职手机网页制作但ptr或((Data *)ptr2)的值代表的是一个可寻址内存单元的地址web切图报价,所以我们可把ptr->a当作左值来用,web切图报价第19行完成了这个设置.当然符合w3c标准,在对dt.a或者ptr->a进行赋值时网页外包接活,我们还会检查一下其类型信息,网页外包接活看看是否有const限定符web前端制作,如第27行的注释所示,web前端制作如果定义dt变量时有const的限定承接网页制作,那么dt.a也相当于有const限定符,div前端切图第28行的Qualify()函数用于添加这个类型限定符.我们还需要在检查一下结构体Data中是否有域成员a,char *id)函数用于此目的.给合我们在第2章给出的“图2.4.4         结构体的类型结构”,则说明dt.a是非法的表达式网页外包接活,则在第23行报错.我们把查询得到的关于域成员a的类型信息通过第29行的代码,jpg或psd转html存放到dt.a表达式对应的语法树结点上.与第3行的Field对应的结构体struct filed描述了域成员的相关信息web前端制作,我们在第2章的“图2.4.3结构体的类型描述”中介绍过这个结构体,web前端制作这里不再重复.

        

     至此承接网页制作,历经一番曲折,兼职手机网页制作我们已经完成了对所有后缀表达式的语义检查.在后续章节中web切图报价,我们会对一元运算表达式和二元运算表达式进行语义检查.沉舟侧畔千帆过,网站div+css让我们继续扬帆前行.

点击次数:2108
作者:
web前端行业资讯
Web new NewsList
微软发布WindowsServerBuild17074更新 ,,2018年01月18日凭借一个AI小功能,这款Google应用冲上苹果AppStore榜首 ,,2018年01月18日百度数据可视化实验室正式成立,发布深度学习可视化平台VisualDL ,,2018年01月18日OpenAI开源最新工具包,模型增大10倍只需额外增加20%计算时间 ,,2018年01月18日百度手机输入法8.0正式发布:支持多人语音速记 ,,2018年01月18日CSDN宣布收购TinyMind团队并升级为AI社区 ,,2018年01月18日甲骨文发布补丁修复英特尔芯片漏洞造成的问题 ,,2018年01月18日权威!官方发布CPU熔断和幽灵漏洞防范指引:附补丁下载 ,,2018年01月18日Oracle宣布新的JavaChampions ,,2018年01月18日Fedora28壁纸征集活动现已开幕:将持续至2月13日 ,,2018年01月18日苹果WebKit团队发布Speedometer2.0网页响应测试工具 ,,2018年01月18日百度输入法8.0后天发布:全感官AI输入 ,,2018年01月18日腾讯和乐高合作:共同研发智能玩具、游戏 ,,2018年01月18日HomePod上市日益临近智能音箱市场吸引力越来越大 ,,2018年01月18日英特尔公布修补漏洞后PC性能数据:8代CPU影响最小 ,,2018年01月18日云存储公司Dropbox秘密提交IPO申请估值超百亿美元 ,,2018年01月18日iPod之父:防手机上瘾无技术难度苹果谷歌应承担责任 ,,2018年01月18日芯片不安全英特尔云客户考虑转用AMD等对手处理器 ,,2018年01月18日2018年Java展望 ,,2018年01月18日区块链有多火?快播流量矿石遭20多万人疯抢 ,,2018年01月18日Intel搞定神经拟态芯片:模拟人类大脑、自主学习 ,,2018年01月18日阿里巴巴发布IoTConnect开放连接协议,盼推动语音互动入口普及 ,,2018年01月18日区块链火了,全球大佬们怎么看? ,,2018年01月18日Facebook正测试新功能主推本地新闻资讯 ,,2018年01月18日在GooglePlay中发现使用Kotlin开发的安卓恶意软件 ,,2018年01月18日VisualStudio201715.6预览版本2,增加新功能 ,,2018年01月18日百度陆奇:AI是5G最好的加速器 ,,2018年01月18日PinterestCEO:不同于谷歌和Facebook,我们走了第三条路 ,,2018年01月18日腾讯加码区块链项目已悄然注册“以太锁”商标 ,,2018年01月18日3D打印脑组织?科学家正在向这一目标正在前进 ,,2018年01月18日微信开发几个坑【数据库】2015年07月20日3.2.5.3search()函数和match()函数区别 【综合】2015年09月06日HardentheHackerThinking(Updating)【Web前端】2015年03月16日Flex3界面布局教程第二篇2014年01月29日Java处理JSON 【编程语言】2015年06月11日解决TD在ie10上不能用的问题 【数据库】2015年03月18日CA证书应用一:Outlook发送邮件时,为邮件添加数字签名 【编程语言】2015年07月08日仿QQ布局实例 【Web前端】2014年12月03日批量添加用户 【数据库】2015年05月05日安卓项目搭建以及实际开发经验 【移动开发】2014年12月09日MySql性能调优(一)字段类型的选取之时间类型 【编程语言】2015年05月29日sgu280:Tradecenters(贪心构造)【编程语言】2015年07月03日通过扫码安装iOSapp【编程语言】2015年01月13日PS动画基础之过渡帧动画的局限性2014年01月28日STL中的全排列(2) 【编程语言】2015年04月01日以假乱真!没谁了!-----------扯淡篇【综合】2015年05月18日.Net其实很强大 【互联网】2015年05月18日Spring动态多数据源实例Demo 【综合】2015年02月04日javascript【js】获取url参数的代码2014年01月29日.NET开发基础:从简单的例子理解泛型分享2014年01月29日Centos下配置端口转发将80端口请求转发至8080 【系统运维】2015年05月05日Ruby应用平台,TorqueBoxv2.0.0.beta2 ,,2016年06月23日Androidapk增量升级 【移动开发】2015年06月01日测试String类的intern方法 【编程语言】2015年07月20日简单工厂模式c#【综合】2014年12月09日MyEclipse使用教程:MyEclipse的安全入门【编程语言】2015年02月09日腾讯面试题:走到50台阶的可能数(台阶可以一次走一阶或者二阶),三种方式实现 【编程语言】2015年04月07日Android的ImageButton当显示Drawable图片时就不显示文字2014年01月30日intellijidea14插件IdentifierHighlighter报错Couldnotsaveapplicationsettings 【编程语言】2014年11月17日Javascript判断object的特定类转载2014年01月29日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)