- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言函数参数求值顺序
维普资讯
C语言函数参数求值顺序
骆 才清
本刊 1989年第 4期登载了朝 日同志 的 《c 便是朝 日同志所遇到的.后面列举 了一个小的C
语言调试一得》。该文指出 c语言没有规定调用 程序在两种版本 的c下生成 EXE文件 的反汇编
函数时参数求值顺序 .该顺序依赖于具体的实 结果 ,供读者参考和 比较。
现。不同的绾译程序可能采用不同的处理方法. 如果希望所编程序有较好的可移植性.则应
程序员不应该缩写对该顺序作出某种假定的程 粜朝 日同志文中所说的那样.避免类似这种依赖
序。就此.笔者通过分析生成的EXE文件,对 于编译程序的缩程方法。 ;
LATT1CE C 和 CoMPUTER INNoVA. LatticeC下的薄程序
TIoNS c在参数求值顺序进行了探讨. # includestdio.h
La垭ceC是 Lattice公司研制的一个两遍扫 # includectyp~.h
描程痔,生成的代码质量高。它包含了四种不同 main()
的运 行模式 (sM,PM.DM,LM).在此 , f
我们 只以生成代 码 最高效 的小模式 (SM)为 charaI10】;
例.在 函数调用时.同其它 c语言一样,只有 char ‘pr; ’
值参替换,或者说,函数的参数替换是传值的。 a[O】= A’;
更确切地说,被调用函数接收的是每个参数的一 all】= B’;
个专用的 临时的副本 (放在堆栈中),而不是 at2]= C‘’:
它的地 址,这与 Fortran和 PL/l不同。对于 a[3】= D‘’;
数组,传送的是数组的起始地址 。Lattrc~C函 pr=a;
数在对参数处理分成两步.先由左至右求出各参 printf(%CYn%cYn%cYn,
数值,然后由右至左对参数一一压栈。由于按这 pr, pr十+, pI++·’p|+●;
样 的方式处理,因而执行朝 日同志程序 中的语 }
句 Primf( First= % C, Second= %C, COMPUTER INNOVATIONS C下 的量程
Third= % C\ n , 十 CP++ , 十 CP++ . 序
CP++);的过程如下 :先由左至右对参数求 main()
值.从‘左至右 的tcP++被替换为 A.B,c, {
然后将这些参数由右至左逐一压栈,最后执行打 charal【0】;
印过程 .在打 印过程 中,将参数逐一从栈 中弹 cha r pr;
出,并打印 结果顺序为 A,B,c,与作者期 atOl= A‘’;
望的一致。 a[tl= B‘’;
CoMPUTER INNOVATIONSC 是 一 个 a[2l= C’:
含预处理 语法分析、代码生成 代码优化的四 a3【】= D’;
遍扫描程序。它对参数的求值顺序处理与前者不 pr=a;
一 样,对于参数的求值是在 自右向左压栈的同时 州n 。%CYn%cYn%c
您可能关注的文档
- 浪潮服务器NP370D产品手册.pdf
- Cocos2d-x 3.x版本windows与android开发环境搭建新手教程【从HelloWorld项目创建到打包生成apk】.pdf
- 20121023迈迪工具集V55注册方法 for win7.pdf
- C-MARK DT12B-2中、英说明.pdf
- 关于在Windows8.1 64位专业版系统中用C语言调用MATLAB生成的.dll文件的尝试.pdf
- CH9 库存决策 14-15.pdf
- ppt_3_Matlab编程.pdf
- MSP430_I2C硬件模块详解.pdf
- Sourcery G++在线调试功能简介.pdf
- GDB远程调试.pdf
- 2024-2025学年安徽省卓越县中联盟高一(上)期中联考物理试卷(含答案).pdf
- 2024-2025学年广东省惠州市第一中学高二(上)期中物理试卷(含答案).docx
- 2024-2025学年广东省惠州市第一中学高二(上)期中物理试卷(含答案).pdf
- 2024-2025学年内蒙古鄂尔多斯一中伊金霍洛分校九年级(上)月考物理试卷(10月份)(含答案).docx
- 2023-2024学年山东省淄博市张店六中八年级(下)期中物理试卷(含答案).pdf
- 2024-2025学年河南省安阳市龙安实验中学八年级(上)第一次月考物理试卷(含答案).pdf
- 2024-2025学年河南省安阳市龙安实验中学八年级(上)第一次月考物理试卷(含答案).docx
- 2024-2025学年江苏省常州实验中学九年级(上)期中物理试卷(含答案).docx
- 2024-2025学年湖北省武汉市江岸区八年级(上)期中物理试卷(含答案).docx
- 2024学校食品安全周活动总结(30篇).pdf
最近下载
- 婴幼儿托育服务与管理专业职业生涯规划书4700字数.docx
- 《电力设备典型消防规程》(DL5027—2022).doc
- 2023年山西工程技术学院数据科学与大数据技术专业《操作系统》科目期末试卷A(有答案).docx VIP
- 一种奶山羊全基因组低密度SNP芯片及其应用.pdf VIP
- 人教版go for it九年级英语全册单词默写表(打印版).pdf VIP
- 2024沪教牛津深圳版三上Unit 4How do we have fun单元整体教学设计.pdf
- 共青团入团知识试卷.docx
- 自由行的利与弊.PDF VIP
- 汽车2023:走进机器人-图拆特斯拉Optimus.pptx VIP
- 电气工程及其自动化毕业论文1.doc
文档评论(0)