1. 用变量a给出下面的定义:
2. 关键字static的作用是什么?
3.关键字const是什么含意?
答:const int a;
最后一个意味着a是一个指向常整形数的常指针(指针指向的整形数是不可以修改的,同时指针也是不可修改的)
Const的优点
关键字const的作用是为给你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。如果你曾花很多时间清理其他人留下的垃圾,你就会很快学会感谢这点多余的信息。合理的使用关键字const可以使编译器很自然地保护那些不希望被改变地参数,防止其被无意地代码修改。这样可以减少bug出现。
4.关键字volatile有什么含意?
一个定义为olatilede的变量是说这变量可能会被意想不到的改变,这样,编译器就不会去假设这个变量的值了。精确的说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量地值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:
5.嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0x67a9的整形变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码完成这一任务。
int *ptr;
ptr = (int*)0x67a9;
*ptr= 0xaa55;
6. 中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展-让标准c支持中断。具体代表事实是,产生了一个新的关键字_interrupt。下面的代码就使用了_interrupt关键字去定义了一个中断服务子程序(ISR),请评论下这段代码的。
_interrupt double compute_area(double radius)
{
}
Answer:
7. 下面的代码输出是什么,为什么?
{
}
Answer:这个问题的答案是>6。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于6。这一点对于频繁使用到无符号数据类型的嵌入式系统来说时非常重要的。