linux驱动开发培训知识分享
时间:10-02
整理:3721RD
点击:
请各位大师指点迷津,我主要是学习嵌入式,在实训中心参加的培训,下面 的代码是自己想的,和大家分享一下。
下面的代码输出是什么,为什么?
void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b > 6) ? puts(“> 6”) : puts(“<= 6”);
}
这个问题测试你是否懂得C语言中的整数自动转换原则,我发现有些开发者懂得极少这 些东西。不管如何,这无符号整型问题的答案是输出是 “>6”.原因是当表达式中存 在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了 一个非常大的正整数,所以该表达式计算出的结果大于6.这一点对于应当频繁用到无 符号数据类型的嵌入式系统来说是丰常重要的。如果你答错了这个问题,你也就到了得 不到这份工作的边缘。
还真没注意过这个问题,学习了,改天试一下
貌似在哪个公司的面试题里看过这个题目
看看
这个代码是小编写的面试一大堆
看过,谢谢分享!
我是新手,谢谢您分享
谢谢分享