首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

几道面试题(和嵌入式有关)解决方案

2012-05-31 
几道面试题(和嵌入式有关)C/C++ code//没有去网上搜有没有类似的题目1.请问下面程序的输出,如果是在可移植

几道面试题(和嵌入式有关)

C/C++ code
//没有去网上搜有没有类似的题目


1.请问下面程序的输出,如果是在可移植的嵌入式系统中,下面有什么风险?为什么?
C/C++ code
int main(int argc ,int *argv[]){    int a = 9, b = 0;    a = a++ % 5 ;    b = a;    printf(" b = %d",b);    return 0;}


2.在嵌入式系统中,为了使C标准支持中断,C编译器开发商通常加上类似 _interupt 关键字来支持中断服务程序,请评价下面的中断程序。
C/C++ code
_interupt double compute_are( float r){    double area = PI * r * r;    printf("area = %f",area);    return area;} 


3.优先级反转问题在嵌入式系统比较普遍,述说什么使优先级反转,对比继承策略和天花板策略。

[解决办法]
SF
[解决办法]
网上有很多类型的吧 特别是第2题经常考的 呵呵

1.很明显printf(" b = %d",b) 有重入和性能上的问题

2.double很影响中断的效率;
中断不能有返回值的和参数传递的,这个也明显的;
  

  

[解决办法]
可移值?a = a++ % 5 ;
可能每个编绎器都不同吧,我不记得++ %它们的优先级了。想明确的话就加上括号吧。a = (a++) % 5 ; 或者a = (a % 5)++ ;

 double compute_are( float ) 考虑下精度问题吧,没研究过这个精度问题。



没搞过qian入式。。。。不知道什么是继承策略和天花板策略。
[解决办法]
1.a = a++ % 5 ;建议换用++a,保证原子操作,保证更好的重入性.
2.同意2楼,
[解决办法]
mark
[解决办法]
帮顶, 为什么问题1有重入性问题, 谁能详细说说
[解决办法]
mark
[解决办法]
2题同意2楼的,不过还有
C/C++ code
double area = PI * r * r;
[解决办法]
优先级反转问题建议到网上百度一下
[解决办法]
命令行参数为什么是int argc, int *argv[],而不是int argc, char *argv[];
不同的编译器int和char长度不一样吧?
[解决办法]
中断函数是不能有返回值和参数传递的.
[解决办法]
第一个程序没看出有什么问题啊,不过好像很多嵌入式系统都没有屏幕可以打印的。
[解决办法]
大家可以加C++技术交流群:11787186
有问题可以把代码贴出来,大家相互交流,共同进步啊。
认为自己实力可以的,可以申请为管理员!
[解决办法]

mark mark

热点排行