栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

嵌入式面试2

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

嵌入式面试2

4.关键字volatile?
  1. volatile 可以保证对特殊地址的稳定访问(变量地址),
  2. 到地址去读取
  3. 告诉编译器不要优化
  4. 用处 :中断服务程序中修改的变量;全局变量;多任务环境下各任务间共享的标志。
5,关键字inline?
  1. inline 是C++引入的关键字
  2. inline 只适合涵数体内代码简单的涵数使用(switch while for)
  3. inline 是一种"用于实现的关键字"
  4. 内联是以代码膨胀(复制)为代价
  5. 如果函数体内出现循环,那么执行函数体内代码的时间要比函数调用的开销大,( 不能有switch while )
  6. inline 只适合涵数体内代码简单的涵数使用
6.信号量,互斥量的区别?

信号量可以存储多个值012345,非负整数;

  • 信号量例子

比如一个教室,里面10个座位,那么信号量就是10,进去了10个人(10个任务获取了10次信号量),信号量变成0,这个时候要进去(获取)就进不去了,需要等待(或试图等待),当有人从教室出来(释放信号量),信号量+1,等待的人(任务)就可以进去(获取)了。

互斥量只能存在1和0;

  • 互斥量例子

一个打印机,每次都只能一个人(任务)使用(访问),那么这个情况下就使用互斥量,当有人在用的时候(互斥量为0),别人就不能用了,当用完之后(互斥量为1),在等待的人就可以去用了

状态

  1. 创建
  2. 释放
  3. 获取
  4. 等待(死等,等多长时间)
  5. 销毁
7.C语言中的static做什么用的?
  1. 作用在变量上,变量存储在静态区,变量作用域只在本文件中
    1. 全局变量(作用域从开始定义到文件结束)
    2. 局部变量,函数执行完不会释放,下次依然可以使用
    3. 存储在.data或.bss区域
  2. 作用在函数,函数作用域只在本文件中(准确从定义之处开始,到文件结尾处结束)
8.char型的数据,怎么将其第三位置0或者置1?

char ,一个字节,8位数据,0000 0000,置0,或置1,0x00;

#include "stdio.h"
int main()
{
    unsigned char c=0x07;
    //c|=0x01<<2;     // 置1 
    c&=~(0x01<<2);    // 置0
    printf("%xrn",c);
    return 0;
}
  • 置0

0x07==>0000 0111

需要与上1111 1011,才能保证其他位数不变,第三位置0

0x01==0000 0001;0x01

  • 置1

0x03==0000 0011

或上 0000 0100,

0x01

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/935652.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号