摘要:
1.中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展--让标准C支持中断。其代表事实是,产生了一个新的关键字_interrupt.请看下面的程序(一个中断服务子程序ISR),请指出这段代码的错误 interrupt double comput_area(double radius){ double area=PI*radius*radius; printf("\nArea=%f",area); return area;}解答:1)ISR不能返回一个值。2)ISR不能传递参数。3)在许多处理器中,浮点一般都是不可重入的2.在嵌入式系统中,我们经常使用”vo 阅读全文
摘要:
1,求下列程序的输出结果:#includeint main(){ printf("%f\n",5); printf("%d\n",5.01);}分析:首先参数5是int型,32位平台中为4字节,因此在stack中分配4字节的内存,用于存放参数5.然而printf根据说明符“%f”,认为参数应该是个double型(在printf函数中,float会自动转换成double),因此从stack中读了8个字节。很显然,内存访问越界。如果printf或者scanf中指定了"%f",那么在后面的参数列表中也应该指定一个浮点数,或者指向浮点数变量的 阅读全文
摘要:
一:什么是多态? 简单来说多态是“一个接口,多种方法”。(不同对象收到相同的消息时,产生不同的动作)。从实现角度来讲,多态可以划分为两类:编译时的多态(通过静态连编实现,主要通过函数重载和运算符重载实现)和运行时的多态(通过动态连编实现,主要通过虚函数实现)。二:重载和覆盖有什么不同?虚函数总是在派生类中被改写,这种改写被称为“Override”(覆盖)。它是指派生类重写基类的虚函数,重写的函数必须有一致的参数表和返回值。Overload被称为“重载”,是指编写一个与已有函数同名但是参数表不同的函数。函数重载是编译时的多态。#includeusing namespace std;class B 阅读全文