阅读以下关于嵌入式C语言编程方面的问题,回答问题1至问题3,将答案填入对应栏内。 [说明] 嵌入式C语言编程中常涉及位运算、宏定义的问题,以及大端方式(Big-endian)、小端方式(Little-endian)的访问问题。 图5-1所示代码的

admin2012-01-21  62

问题   阅读以下关于嵌入式C语言编程方面的问题,回答问题1至问题3,将答案填入对应栏内。
[说明]
   嵌入式C语言编程中常涉及位运算、宏定义的问题,以及大端方式(Big-endian)、小端方式(Little-endian)的访问问题。
  图5-1所示代码的设计意图是计算1~100各数的平方。该段代码运行后,没有得到应有的结果,请说明出错原因,将答案填入对应栏内。

图5-2是在不改变宏定义的情况下,对程序进行修改。请完成该段代码,将答案填入对应栏内。

选项

答案出错原因: 在宏定义中,参数a使用两次,而在引用宏时,使用了i++,从而导致出错。 ①i ②i++或i=i+1或++i或i+=1

解析 对问题2中的代码进行宏展开之后,计算平方的语句为result=SQUARE((i++)*(i++)),这里使用了两次“i++”表达式,单次循环两次使用i++显然不是该程序的初衷。所以不能得到期望的结果,应该避免两次i++的使用。
转载请注明原文地址:https://kaotiyun.com/show/VhWZ777K
0

相关试题推荐
最新回复(0)