嵌入式面试题(一)

嵌入式面试题(一)1 关键字 volatile 有什么含义 并给出三个不同的例子防止编译器优化 如果你不知道这个关键字 那么你可能不是一个合格的嵌入式软件工程师 一个定义为 volatile 的变量是说这变量可能会被意想不到地改变 这样 编译器就不会去假设这个变量的值了 精确地说就是 优化器在用到这个变量时必须每次都小心地重新读取这个变量的值 而不是使用保存在寄存器里的备份 下面是 volatile 变量的几个例子 1

1 关键字volatile有什么含义?并给出三个不同的例子

防止编译器优化,如果你不知道这个关键字,那么你可能不是一个合格的嵌入式软件工程师。

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:

 1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)+ 3). 多线程应用中被几个任务共享的变量 
  int square(volatile int *ptr)   {   return *ptr * *ptr;   } 
  int square(volatile int *ptr)   {   int a,b;   a = *ptr;   b = *ptr;   return a * b;   } 

由于*ptr的值可能被意想不到地该变,因此a和b可能是不同的。结果,这段代码可能返不是你所期望的平方值!正确的代码如下:

  long square(volatile int *ptr)   {   int a;   a = *ptr;   return a * a; 
2. c和c++中的struct有什么不同?

答: c和c++中struct的主要区别是c中的struct不可以含有成员函数,而c++中的struct可以。c++中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private.

3.进程和线程区别
4.ARM流水线
5.使用断言
6 .嵌入式系统的定义

嵌入式系统以应用为中心,以半导体技术、控制技术计算机技术和通讯技术为基础,强调硬件软件的协同性与整合性,软件与硬件可剪裁,以满足系统对功能、成本、体积和功耗等要求。

7 局部变量能否和全局变量重名?
8 如何引用一个已经定义过的全局变量?
9、全局变量可不可以定义在可被多个.C 文件包含的头文件中?为什么?
10 static 全局变量与普通的全局变量有什么区别?static 局部变量和普通局部变量有什么区别?static 函数与普通函数有什么区别?
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222070.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午4:38
下一篇 2026年3月17日 下午4:38


相关推荐

  • 不会编程,也能用Cursor开发微信小程序,超详细教学

    不会编程,也能用Cursor开发微信小程序,超详细教学

    2026年3月16日
    2
  • SSL和SSH有什么区别

    SSL和SSH有什么区别

    2021年10月8日
    45
  • 关于离线缓存Application Cache /使用 manifest文件缓存

    ApplicationCache的配置文件首先需要在服务器上建立一个文件,里面的内容确定了哪些文件需要缓存,哪些文件不需要,如果资源无法访问会使用什么页面等这个文件一般为.appcache类型,称为缓存清单(cachemanifest)文件,一个完整的缓存清单文件如下:CACHEMANIFEST#versionxx.xx.xxCACHE:needBeCached.pn…

    2022年4月11日
    57
  • Car Fleet 车队

    Car Fleet 车队N  辆车沿着一条车道驶向位于 target 英里之外的共同目的地。每辆车 i 以恒定的速度 speed[i] (英里/小时),从初始位置 position[i] (英里)沿车道驶向目的地。一辆车永远不会超过前面的另一辆车,但它可以追上去,并与前车以相同的速度紧接着行驶。此时,我们会忽略这两辆车之间的距离,也就是说,它们被假定处于相同的位置。车队 是一些由行驶在相同位置、具有相同…

    2022年5月15日
    76
  • php安装make出现“collect2:error:ldreturned1exitstatus

    php安装make出现“collect2:error:ldreturned1exitstatusphp安装make出现“collect2:error:ldreturned1exitstatus

    2022年4月24日
    128
  • JWT单点登录 看这一篇就够了!

    JWT单点登录 看这一篇就够了!JWT单点登录前言两种登录状态有状态登录无状态登录无状态登录流程整个登录过程中,最关键的点是什么?jwt实现无状态登录数据格式JWT交互流程非对称加密代码实现核心依赖核心工具类JWT工具类RSA工具类测试前言本编在某度上看到了很多关于JWT的实现,但是由于里面讲的太过详细和繁琐,所以打算自己出一篇,有什么不足之处,还希望多多提出来,觉得好的可以点个关注,不喜勿喷,祝猿们天天开心O(∩_∩)O~两种登录状态有状态登录为了保证客户端cookie的安全性,服务端需要记录每次会话的客户端信息,从而识别客户

    2022年5月12日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号