问题
问答题
阅读以下关于C语言及C代码的叙述。
[说明]
在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下三部分程序,其中:
[C代码1]
是李工为了在嵌入式平台上开发一段可变参数函数,在X86平台上实现的一个参数个数可变函数实例。[C代码2]
是王工在编写软件时,自己编写的内存拷贝函数。[C代码3]
是赵工编写的一段数据处理的程序,其中fun0的含义为从已创建的一个单向链表中查找倒数第index个结点。他的设计思路为:首先创建两个指针ptr1,ptr2,并且都指向链表头,然后ptr1向前走index步,这样ptr1和ptr2之间就间隔index个结点,然后ptr1和ptr2同时向前步进,当ptr1到达最后一个结点时,ptr2就是倒数第index个结点了。ReverseList()为赵工编写的对已有单向链表进行逆序重排的函数。执行C代码1后,Sum的值应为多少请用十进制表示。
答案
参考答案:
Sum=6
解析:
[分析]: 本题考查嵌入式C语言编程基础知识。
可变参数函数的应用在嵌入式C程序设计中应用非常广泛。在X86平台下,参数在堆栈中的存放是按照由底向上进行存储的。因此,在该程序中,sum函数的第一个参数表示的是在该参数后面还包含有几个参数。在程序体中,使用第一个参数进行参数访问控制,参数的获取方式按照数组方法进行获取。因此,C代码1执行后,Sum的值为6。