小匠物联面试题目(嵌入式软件)20210223

嵌入式软件工程师经典笔试题

不要打没准备的仗!!!

1、Linux常用命令及说明(不少于5个)

cmd
ipconfig all
rf
remote
cd
mkdir 创建文件夹
rmdir 删除文件夹
ls (list file) 列出当前目录文件
date 查看系统当前日期
pwd(print work directory) 查看工作目录

2、如何避免头文件被重复引用

使用宏定义(#ifndef / #define / #endif)来有效避免头文件被重复 #include

3、#和##作用

#表示这是一条预处理命令(在C语言中凡是以#开头的均为预处理命令)
C 语言提供的预处理功能有三种,分别为宏定义、文件包含和条件编译。
typedef
char 占一个字节,即8位二进制数 uchar char*
在这里插入图片描述
在这里插入图片描述
stdio 就是指 “standard input & output"(标准输入输出)
scanfVSC调试C程序,需安装编译器MINGW
Mingw-w64在win10下的安装使用
C语言中%c%s的区别
(*pf)函数指针
指针

4、static作用

函数内:限制变量函数作用于,设置变量存储域
函数外
模块内

5、volatile作用

防止编译器对变量进行优化

6、程序找错(2个程序)

malloc的全称是memory allocation,中文叫动态内存分配
1、使用memcpy()需包含头文件 string.h
2、return buf 不对,buf是临时变量,出来这个子函数buf这个数组就不存在了。
3、malloc()返回值需要类型转化 ,应为(char \*)malloc(1024);
4、unsigned char 类型的i 最大只能等于255,不能等于8*1024那么大
5、if(q=NULL)不对,=为赋值语句,应为q == NULL
6、buf = buf + 1024已经改变了buf的指向地址,最后return buf,return的就是改变后的值
7、#define MIN(A,B) ((A) <= (B) ? (A) : (B)); 宏定义后面没有分号

7、写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个

#define MIN(A,B) ((A) <= (B) ? (A) : (B)) 变量和整体函数必须加括号,防止宏定义副作用

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值