- 嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。
- 中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。具代表事实是,产生了一个新的关键字__interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。
- __interrupt double compute_area (double radius)
- {
- double area = PI * radius * radius;
- printf(" Area = %f", area);
- return area;
- }
-
- 尽管不像非嵌入式计算机那么常见,嵌入式系统还是有从堆(heap)中动态分配内存的过程的。那么嵌入式系统中,动态分配内存可能发生的问题是什么?
- Typedef在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。例如,思考一下下面的例子:
- #define dPS struct s *
- typedef struct s * tPS;
- 以上两种情况的意图都是要定义dPS和tPS作为一个指向结构s指针。哪种方法更好呢?(如果有的话)为什么?
- C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?
- Int a = 5, b = 7, c;
- c = a+++b;
- 关键字static的作用是什么?
- 关键字const是什么含意?
- 下面的代码输出是什么,为什么?
- Void foo(void)
- {
- unsigned int a = 6;
- int b = -20;
- (a+b > 6) puts("> 6") : puts("<= 6");
- }
- 评价下面的代码片断:
- unsigned int zero = 0;
- unsigned int compzero = 0xFFFF;
- /*1's complement of zero */
全部评论
(0) 回帖