2021 9.24人生的第一次面试
全志面经 嵌入式深圳岗
1. 自我介绍
我说对全志公司早有耳闻,然后被面试官反问了,说什么时候知道的全志公司哈哈哈,后面因为学长买了一个全志的开发板而认识但没有用过。
2. 项目简介
我这里项目介绍的比较乱,本来已经分点写好的,没说明白。重点难点没说清楚。这里和面试官聊得挺好的,他就问什么是一个人完成还是两个人。这个项目简介最好还是提前写好吧,免得说不明白。
介绍完后就问是对那种语言比较熟悉,然后我说是C语言。就开始进行提问了。
3. 正题
- C语言的编译过程
这里一上来就懵了 ,预处理 编译,汇编,连接 说了后三个
正解:
预处理, 展开头文件/宏替换/去掉注释/条件编译 (test.i main .i)
编译, 检查语法,生成汇编 ( test.s main .s)
汇编, 汇编代码转换机器码 (test.o main.o)
链接 链接到一起生成可执行程序 a.out
- 说一说 文件同名如何解决吧
由于第一个问题还在蒙圈,就说是static externa 这两个单词的拼音 ,不会英语的靓仔落泪!
正解也应该是这两个吧。 - 局部变量和全区变量的区别 同名时哪个优先执行
作用域不同
内存存储方式不同
生命周期不同
使用方式不同
局部变量优先 - 数组与指针的区别
当时太紧张没有说详细 ,就说数组是一段内存地址 指针是指向一个内存地址
存储方式不同
内存容量不同
内存上的差别自行百度吧hhhh
- 什么是大小端 给一段字符如何知道它是大端还是小端
我自己的口诀是 大高低,小高高。大端高位数据放在地位地址。小端模式,高位数据放在高地址中。
后面的这个真不会。因为计算机三级没背到哈哈哈
(1)用指针的办法:把变量的地址强制类型转换为char*,这样就可以每次取出一个字节的内容
(2)用联合的知识:在联合体中定义一个char 类型的变量和int类型的变量,利用二者所占同一段存储空间,可以通过引用联合体变量中的成员访问char 类型的数据。取出一个字节的内容
//指针方式
#include<stdio.h>
int main()
{
int a = 1;//这里为了方便,以1为例
char*p = (char*)(&a);
if (*p == 1)
{
printf("little endian\n");//小端存储
}
else
{
printf("big endian\n");//大端存储
}
return 0;
}
//联合
#include<stdio.h>
union endian
{
char c;
int i;
}en;
int main()
{
en.i = 1;
if (en.c == 1)
{
printf("little endian\n");
}
else
{
printf("big endian\n");
}
return 0;
}
-
有没有了解过Linux 说一说进程与线程
进程拥有自己的堆栈,不共享堆栈,线程是CPU独立运行和独立调度的基本单位。 -
平时喜欢看什么书
突然换方式就懵了,没回答好,刚刚使用技术问答突然变画风HHH -
自我评价性格
乐观开朗,交朋友。跟学长学弟吃吃饭,交流技术等,感觉自己也没答好。 -
平时压力大的时候怎么办
跑步出汗巴拉巴拉,没答好哈哈哈 -
项目紧急是如何安排
优先安排项目,适当休息就完了哈哈简短 -
后面又问我说有和客户对接的岗位,需要进行沟通解决,能自己解决就解决,不能就带回公司交流,是否愿意去
我说还是喜欢技术岗,底层驱动
最后让我反问
我没敢问,就问我什么时候有二面,他说看HR
后面又问实在没有嘛?
我就问了2017年全志裁员应届生的问题,他很耐心的回答说当时经济问题,公司预算等上头的计划等巴拉巴拉哈哈哈就结束了我人生的第一次找工作面试哈哈哈