![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式C语言面试
剖析常见嵌入式C面试题,掌握关键知识点,让你顺利通过面试。
muyepiao1
这个作者很懒,什么都没留下…
展开
-
嵌入式面试C集锦(7) 循环队列
//运行环境keil c51 //学习目的:循环队列的运用 /*关键算法: 在循环队列中,当队列为空时,有front=rear,而当所有队列空间全占满时, 也有front=rear。为了区别这两种情况,规定循环队列最多只能有MaxSize-1个 队列元素,当循环队列中只剩下一个空存储单元时,队列就已经满了。因此,队 列判空的条件时front=rear,而队列判满的条件时front=(rear+1)%MaxSize。 */ #include "reg51.h" #include <stdio.h>.原创 2020-08-17 22:00:44 · 232 阅读 · 1 评论 -
嵌入式面试C集锦(6) 关键字CONST
答:我只要一听到被面试者说:“const意味着常数”,我就知道我正在和一个业余者打交道。去年Dan Saks已经在他的文章里完全概括了const的所有用法,因此ESP(译者:Embedded Systems Programming)的每一位读者应该非常熟悉const能做什么和不能做什么.如果你从没有读到那篇文章,只要能说出const意味着“只读”就可以了。尽管这个答案不是完全的答案,但我接受它作为一个正确的答案。(如果你想知道更详细的答案,仔细读一下Saks的文章吧。)如果应试者能正确回答这个问题,我将问他转载 2020-08-11 00:37:45 · 118 阅读 · 0 评论 -
嵌入式面试C集锦(5) 堆、栈的区别
全面描述了堆栈的区别,大家有个印象就行 (1)申请方式 stack:由系统自动分配。例如,声明在函数中一个局部变量int b;系统自动在栈中为b开辟空间 heap:需要程序员自己申请,并指明大小,在c中malloc函数 如p1=(char*)malloc(10); 在C++中用new运算符 如p2=(char*)malloc(10); 但是注意p1、p2本身是在栈中的。 (2)申请后系统的响应 栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。 堆:首先应该知道操作系统有转载 2020-08-11 00:10:34 · 280 阅读 · 0 评论 -
嵌入式面试C集锦(4)测试结构体成员内存对齐方式
//测试环境:keil for ARM //测试目的:通过keil仿真,介绍结构体成员对齐方式 #pragma pack () //定义一个联合体类型 struct stru { int a; long b; char c; }; int *p1;//定义指针变量 long *p2;//定义指针变量 char *p3;//定义指针变量 struct stru stru1={1,1,1};//初始化结构体 unsigned char temp;//定义一个变量,存放结构体长度 .原创 2020-08-06 00:54:13 · 187 阅读 · 0 评论 -
嵌入式面试C集锦(3)测试联合体变量成员地址在数值上相等
#include "reg51.h" #include "intrins.h" //测试环境:keil c51 //测试目的:通过keil仿真,测试联合体变量成员地址在数值上相等。 //定义一个联合体类型 union un { unsigned int i; char j; }; union un un1; //定义联合体变量 void main() { unsigned int *p1;//定义指针 char *p2;//定义指针 p1= &un1.i;//给指针赋值 p2 .原创 2020-08-05 22:04:21 · 303 阅读 · 0 评论 -
嵌入式面试C集锦(2)冒泡排序法
//功能:实现冒泡排序,从大到小 void paixu(char buf[],char N) { unsigned char i,j; char temp; for(i=0;i<N-1;i++)//N个数,比较N-1次大循环 { for(j=0;j<N-i-1;j++) //第i次大循环,小循环比较的次数是N-i-1 { if(buf[j] < ...原创 2020-08-05 21:38:49 · 244 阅读 · 0 评论 -
嵌入式面试C集锦(1)嵌入式大小端判断
转载,如若侵权,请联系本人删除。 联合体定义 联合体和结构体一样都是自定义类型。联合体也包含一系列成员,但是和结构体不一样的是这些成员共用一个空间。也就是说联合体内,任意一个成员地址在数值上都相等。 请看联合体的声明: 利用联合体判断大小端 先请看下列代码: 由此,可以利用联合体判断大小端: 同理,还有另一种方法判断大小端: 联合大小的计算 结构体存在内存对齐,那联合存在吗? 由于联合中各成员共用同一段空间,所以联合长度至少可以容纳最大的成员。 但是当最大成员.转载 2020-08-05 21:22:48 · 282 阅读 · 0 评论