嵌入式C语言运用(笔试面试前必看)

合集下载

嵌入式面试题及答案「C语言」

嵌入式面试题及答案「C语言」

嵌入式面试题及答案「C语言」嵌入式工程师比拟常见的嵌入式面试试题有哪些考点?下面为大家分享嵌入式工程师面试试题及答案,希望对大家参加面试有所帮助!1. 用预处理指令#define 声明一个常数,用以说明1年中有多少秒(忽略闰年问题)#define SECONDSPERYEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1). #define 语法的根本知识(例如:不能以分号完毕,括号的使用,等等)2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。

3). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。

4). 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。

记住,第一印象很重要。

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

#define MIN(A,B) ((A) <= (B) (A) : ))C/C++试题集 C/C++ Development这个测试是为下面的目的而设的:1). 标识#define在宏中应用的根本知识。

这是很重要的,因为直到嵌入(inline)操作符变为标准C的一局部,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能到达要求的性能,嵌入代码经常是必须的方法。

2). 三重条件操作符的知识。

这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。

3). 懂得在宏中小心地把参数用括号括起来4). 我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事?Least = MIN(*p++, b);3. 预处理器标识#error的目的是什么?如果你不知道答案,请看参考文献1。

这问题对区分一个正常的伙计和一个书呆子是很有用的。

嵌入式C语言面试题a

嵌入式C语言面试题a
死循环(Infinite loops)
4. 嵌入式系统中经常要用到无限循环,你怎么样用 C 编写死循环呢?
这个问题用几个解决方案。我首选的方案是: while(1) { } 一些程序员更喜欢如下方案: for(;;) { } 这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出 这个作为方案,我将用这个作为一个机会去探究他们这样做的 基本原理。如果他们的基本答案是:“我被教着这样做,但从没有想到过为什么。”这会 给我留下一个坏印象。 第三个方案是用 goto Loop: ... goto Loop;
int a; void set_bit3(void) { a |= (1<<3); } void clear_bit3(void) { a &= ~(1<<3); } 15. 中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展―让标准 C 支持中断。具代表事实是,产生了一个新的关键 字__interrupt。下面的代码就使用了__interrupt 关键字去定义了一个中断服务子程序(ISR), 请评论一下这段代码的。
在许多的处理器/编译器中ห้องสมุดไป่ตู้浮点一般都是不可重入的。有些处理器/编译器需要让额处的 寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有 效率的,在ISR中做浮点运算是不明智的。 printf()经常有重入和性能上的问题。 16 . 下面的代码输出是什么,为什么?
void foo(void) { unsigned int a = 6; int b = -20; (a+b > 6) ? puts("> 6") : puts("<= 6"); } 答案是输出是">6"。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动 转换为无符号类型。 因此-20 变成了一个非常大的正整数,所以该表达式计算出的结果大 于 6。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。

嵌入式C语言面试题大全(看这个就够了)

嵌入式C语言面试题大全(看这个就够了)

1.static有什么用途?(请至少说明两种)1)限制变量的作用域2)设置变量的存储域(堆,主动分配内存也是堆)1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。

2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。

它是一个本地的全局变量。

3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。

那就是,这个函数被限制在声明它的模块的本地范围内使用。

4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在栈6.堆栈溢出一般是由什么原因导致的?堆栈溢出一般是循环的递归调用导致的,如果使用的大数据结构的局部变量,也可能导致堆栈溢出。


没有回收垃圾资源导致的是内存泄露最后内存耗尽。

20.不能做switch()的参数类型是:switch的参数不能为实型。

(只能是int char)9.写出float x 与“零值”比较的if语句。

if(x<0.000001&&x>-0.000001)3.在c语言库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么?函数名: atol功能: 把字符串转换成长整型数函数的原型: long atol(const char *nptr);程序例:#include <stdlib.h>#include <stdio.h>int main(void){long l;char *str = "98765432";l = atol(lstr);printf("string = %s integer = %ld\n", str, l);return(0);}1.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?c用宏定义,c++用inline8.软件测试都有那些种类?黑盒:针对系统功能的测试白合:测试函数功能,各函数接口9.确定模块的功能和模块的接口是在软件设计的那个阶段完成的?概要设计阶段11.unsignedchar *p1;unsigned long *p2;p1=(unsigned char *)0x801000;p2=(unsigned long *)0x810000;请问p1+5=? ;p2+5=? ;答:p1+5=0x801005 ;p2+5=0x810014 ;1.请问下面程序有什么错误?int a[60][250][1000],i,j,k;for(k=0;k<1000;k++)for(j=0;j<250;j++)for(i=0;i<60;i++)a[i][j][k]=0;把循环语句内外换一下(编译的时候没错,运行的时候出错,但这个数组太大,如果放在栈中,还是会溢出,要作为全局变量)2.#defineMax_CB 500void LmiQueryCSmd(Struct MSgCB * pmsg){unsigned char ucCmdNum;......for(ucCmdNum=0;ucCmdNum<Max_CB;ucCmdNum++){......;}死循环(unsigned char 0 到 255)3.以下是求一个数的平方的程序,请找出错误:#define SQUARE(a)((a)*(a))int a=5;int b;b=SQUARE(a++);//a被加了2次 a=7,b=252、有一个16位的整数,每4位为一个数,写函数求他们的和。

嵌入式面试题大全

嵌入式面试题大全

嵌入式面试题大全在嵌入式领域,面试题是评估应聘者技能和经验的重要方式。

嵌入式系统工程师需要掌握的知识面广泛,包括硬件和软件方面的技能。

下面列举了一些常见的嵌入式面试题,希望对准备面试的应聘者有所帮助。

1. 什么是嵌入式系统?嵌入式系统和普通计算机有什么区别?嵌入式系统是集成了硬件和软件的特定用途的计算机系统,通常被嵌入到其他设备中,用于控制设备的运行。

与普通计算机相比,嵌入式系统通常具有小巧、低功耗、实时性要求高等特点。

2. 什么是RTOS?RTOS和一般操作系统有何区别?RTOS(Real-Time Operating System)是一种专门设计用于实时系统的操作系统。

与一般操作系统相比,RTOS具有更高的实时性能、更低的延迟和更小的内存占用。

3. 请解释一下中断的概念,并说明中断处理的流程。

中断是一种用于处理外部事件的机制,可以在程序执行的任何时候打断当前的执行流程。

当系统发生中断时,会保存当前的上下文状态,跳转到中断处理程序中执行相应的操作,处理完中断后再返回到中断发生的地方继续执行。

4. 什么是嵌入式系统的裸机编程?请举例说明。

裸机编程是指在嵌入式系统中直接操作硬件,不依赖操作系统的编程方式。

例如,在裸机编程中,可以直接对寄存器进行操作来控制设备的运行。

5. 什么是嵌入式系统的外设?请举例说明。

外设是指嵌入式系统中与主处理器相连的其他设备,如串口、定时器、ADC 等。

外设可以扩展系统的功能,实现与外部设备的通信和控制。

6. 请解释一下嵌入式系统中的通信总线的概念,并说明常见的通信总线类型。

通信总线是连接嵌入式系统中各个设备的传输介质,用于实现设备之间的数据传输和通信。

常见的通信总线类型包括I2C总线、SPI总线、CAN总线等。

7. 请解释一下嵌入式系统中的嵌入式存储器的概念,并说明常见的嵌入式存储器类型。

嵌入式存储器是嵌入式系统中用于存储程序和数据的存储设备,通常包括闪存、EEPROM、RAM等。

广电运通嵌入式面试题(一)

广电运通嵌入式面试题(一)

广电运通嵌入式面试题(一)广电运通嵌入式面试题软件开发•C语言基础–什么是指针?如何使用指针?–什么是结构体?如何定义和使用结构体?–什么是位运算?举例说明位运算的应用场景。

•操作系统–什么是进程和线程?它们有什么区别和联系?–什么是进程间通信(IPC)?列举几种常用的IPC机制。

–什么是死锁?如何避免死锁的发生?•数据结构与算法–介绍一下常见的排序算法,并对它们的性能进行比较。

–什么是树?常见的树结构有哪些?–什么是哈希表?哈希函数的作用是什么?嵌入式系统•嵌入式C语言–在嵌入式开发中,常见的数据类型有哪些?请分别介绍它们。

–什么是寄存器?如何使用寄存器编程?–如何配置和控制嵌入式系统的时钟和中断?•单片机–什么是单片机?它和微控制器有何区别?–列举一些常见的单片机品牌和型号,并介绍它们的特点。

–如何使用单片机控制外设设备?•嵌入式操作系统–什么是嵌入式操作系统?列举几种常见的嵌入式操作系统。

–介绍一下FreeRTOS,并讲解其任务调度机制。

–嵌入式Linux和传统Linux有什么区别?硬件基础•电子电路–什么是电流、电压和电阻?它们的关系是什么?–什么是放大器?介绍几种常见的放大器。

–什么是逻辑门电路?介绍几种常见的逻辑门电路。

•数字电子技术–什么是二进制代码?如何进行二进制与十进制的转换?–什么是时序电路?介绍几种常见的时序电路元件。

–什么是存储器?列举几种常见的存储器类型。

•嵌入式调试与测试–介绍一下串口通信的原理和常见的串口通信协议。

–嵌入式系统的测试方法有哪些?如何进行软件调试和硬件调试?–如何进行嵌入式系统的电磁兼容性(EMC)设计与测试?项目经验•你在嵌入式系统开发方面的项目经验是什么?请具体描述。

•你在团队合作中遇到的问题和解决方案是什么?•你对嵌入式系统开发的未来发展有什么看法和建议?•你对持续学习和自我提升的态度是怎样的?。

2022年度嵌入式C语言面试题库(含答案)

2022年度嵌入式C语言面试题库(含答案)

2022年度嵌入式C语言面试题库(含答案)1、什么是嵌入式C?/ 你对嵌入式C 语言的理解是什么?嵌入式 C 是 C 标准委员会指定的 C 编程语言的一组语言扩展。

它通常用于解决不同嵌入式系统的 C 扩展之间存在的共性问题。

嵌入式 C 编程通常需要对 C 语言进行非标准扩展,以支持增强的微处理器功能,例如定点算术、多个不同的内存库和基本I/O 操作。

2、你对嵌入式系统的理解是什么?嵌入式系统是一种基于微处理器的计算机硬件系统和软件,旨在执行特定的功能。

嵌入式系统要么是一个独立的系统,要么是一个大型系统的一部分。

3、C语言和嵌入式C之间的主要区别是什么?C语言是一种通用的高级编程语言,用于设计任何基于桌面的应用程序。

另一方面,嵌入式C 是 C 语言的扩展,用于开发基于微控制器的应用程序。

在这里,嵌入式是指主机或微控制器,而不是编程语言。

让我们在下表中来看看C语言和嵌入式C 之间的主要区别。

C语言和嵌入式C 的区别:C语言嵌入式C C编程语言是一种通用编程语言,用于设计任何基于桌面的应用程序。

嵌入式C 只是一种扩展C 编程语言,它用于开发基于微控制器的应用程序。

C编程语言是一种高级编程语言。

嵌入式4、嵌入式C 是一种编程语言吗?嵌入式C 不是核心编程语言。

它是 C 编程语言的扩展,用于开发基于微控制器的应用程序。

嵌入式 C 语言从普通 C 编程语言引入的扩展是I/O 硬件寻址、定点算术运算、访问地址空间等。

5、嵌入式C 的主要优点是什么?嵌入式C 是 C 编程语言的扩展。

让我们看看嵌入式 C 的主要优势:嵌入式 C 的主要优势:嵌入式C的编码速度快,简单易懂。

它不需要任何硬件更改,例如额外的内存或存储空间,因为它始终执行相同的任务。

它专注于其特定任务,一次只执行一项任务。

它主要用于现代自动化应用。

嵌入式应用程序非常适合工业用途。

6、嵌入式C 的主要缺点是什么?嵌入式C 的缺点:嵌入式C 一次只执行一项任务,因此当我们必须同时执行多项任务时,它不是首选。

嵌入式软件开发面试C语言笔试题+答案

嵌入式软件开发面试C语言笔试题+答案
/************************
Chapter2 系统类
***********************/
1. Linux 和 Uc/os 是如何实现任务调度的?
2. Bootloader 移植过程要注意的事项,要做哪些工作 3. Emacs 用过没有?
/************************
h) int (*a[10]) (int); // An array of 10 pointers to functions that take an in teger argument and return an integer
5. 什么是存储机制里的大、小端模式?试举例说明 大端模式(big-edian):MSB 存放在最低端的地址上。举例,双字节数0x1234以 big-endian 的方式存在起始地
7. 定义一个返回值是指向函数的指针且有一个指向函数的指针作参数的函数。
通用形式如下:
typedef int (*P)( );
// 定义一个函数指针 P 类型
P function( int (*p)( ) );
// 定义一个函数返回值 P 类型,且定义一个指向函数的指针 p 作参数
8. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365) UL // UL 怎么个用法?你暂不要加
SLNode *p,*q; int j; p=head; j=-1; while( (p->next!=NULL) && (j<(i-1)) ) {
int a = 5, b = 7, c;

嵌入式面试题目及答案

嵌入式面试题目及答案

嵌入式面试题目及答案嵌入式系统是当今科技领域中不可或缺的一部分,它在我们日常生活和工业生产中起到了重要的作用。

而嵌入式系统的开发与设计需要专业的技术和知识,因此在面试过程中,相应的题目是必不可少的。

本文将为您提供一些常见的嵌入式面试题目并给出相应的答案,以供参考。

1. 请简要解释什么是嵌入式系统?嵌入式系统(Embedded System)是一种特定功能电子设备中的计算机系统,它嵌入到其他产品中,以执行特定的任务或控制特定的功能。

嵌入式系统的关键特点包括实时性、低功耗、体积小、成本低以及对于硬件和软件的高度整合。

2. 嵌入式系统与通用计算机有何区别?嵌入式系统与通用计算机之间存在以下区别:- 功能:嵌入式系统的设计旨在执行特定任务,如控制、数据采集、嵌入式通信等,而通用计算机则具备更多的通用性,能够执行各种不同的任务。

- 硬件:嵌入式系统通常使用嵌入式处理器,集成了所需的硬件接口和外设,以适应特定的功能要求,而通用计算机则侧重于提供更高的计算和存储能力。

- 实时性:嵌入式系统通常需要满足实时性需求,能够及时响应输入和输出,而通用计算机则更关注处理复杂的用户交互和计算任务。

3. 请列举一些常见的嵌入式操作系统。

常见的嵌入式操作系统包括:- 实时操作系统(RTOS):如FreeRTOS、VxWorks、QNX等,具有实时性、可靠性和可嵌入性等特点。

- Linux嵌入式系统:如Linux内核、Debian、Buildroot等,提供了完整的开发环境和强大的功能。

- 嵌入式Windows系统:如Windows CE、Windows Embedded等,提供了Windows桌面操作系统的子集。

4. 请简要介绍一下嵌入式系统的调试方法。

常用的嵌入式系统调试方法包括:- 打印调试:通过在代码中插入打印语句,输出调试信息,用于查看程序流程以及变量的值。

- 软件仿真调试:使用仿真器或调试器连接到目标硬件上,在宿主机上进行调试操作,方便观察和跟踪代码的执行。

嵌入式软件开发笔试题目

嵌入式软件开发笔试题目

嵌入式软件开发笔试题目
嵌入式软件开发笔试题目主要考察以下几个方面:
1.嵌入式系统基础:包括嵌入式系统的概念、特点、结构、组成、开发流程等。

2.嵌入式软件设计:包括嵌入式软件的设计方法、设计原则、设计规范等。

3.嵌入式软件开发语言:包括C、C++、Java等嵌入式软件开发语言的语法、关
键字、库函数等。

4.嵌入式软件开发工具:包括编译器、调试器、仿真器等嵌入式软件开发工具
的使用方法。

5.嵌入式软件开发常见问题:包括内存管理、中断处理、多任务处理等嵌入式
软件开发常见问题的解决方法。

以下是一些常见的嵌入式软件开发笔试题目:
嵌入式系统基础
1.什么是嵌入式系统?
2.嵌入式系统的特点是什么?
3.嵌入式系统的结构是什么?
4.嵌入式系统的组成是什么?
5.嵌入式系统的开发流程是什么?
嵌入式软件设计
1.嵌入式软件的设计方法有哪些?
2.嵌入式软件的设计原则有哪些?
3.嵌入式软件的设计规范有哪些?
嵌入式软件开发语言
1.C语言的关键字有哪些?
2.C++语言的关键字有哪些?
3.Java语言的关键字有哪些?
嵌入式软件开发工具
1.编译器的功能是什么?
2.调试器的功能是什么?
3.仿真器的功能是什么?
嵌入式软件开发常见问题
1.内存管理的策略有哪些?
2.中断处理的流程是什么?
3.多任务处理的策略有哪些?。

嵌入式c语言常见笔试题或面试题

嵌入式c语言常见笔试题或面试题
2、#error 的作用
当预处理器预处理到#error 命令时将停止编译并输出用户自定义的错误消息。其目的就 是保证程序是按照你所设想的那样进行编译的。
如 #error Sorry,an error has occurred! 当程序比较大时,往往有些宏定义是在外部指定的(如 makefile),或是在系统头文件 中指定的,当你不太确定当前是否定义了 XXX 时,就可以改成如下这样进行编译: #ifdef XXX ... #error "XXX has been defined" #else #endif
如果仅仅使用{}将 foo1 和 foo2 包裹起来,展开后如下:
if(a>0)
{
foo1();
foo2();
}; //这是错的
所以,很多人才采用了 do{...}while(0);
#define DOSOMETHING() \
do{ \
foo1();\
foo2();\
}while(0)\
展开后得到:
由于频繁的进行动态内存分配会造成内存碎片的产生,影响系统性能,所以在不同的系 统中,对于动态内存管理,开发了许多不同的算法,不同的操作系统,有不同的实现方式, 为了程序的可移植性,一般在开发语言的库中都提供了统一接口。对于 C 语言,在标准 C 库和 Glib 中,都实现了以 malloc/free 为接口的动态内存分配功能。也就是说,malloc/free 库函索包装了不同操作系统对动态内存管理的不同实现,为开发者提供了一个统一的开发环 境。对于我们前面提到的一些嵌入式操作系统,因为实时系统的特殊要求(实时性要求和开 发者订制嵌入式系统),可能没有提供相应的接口。
1)、算术转换 进行算术运算(加、减、乘、除、取余以及符号运算)时,不同类型数招必须转换成同

嵌入式面试笔试题

嵌入式面试笔试题

1、在嵌入式系统中,以下哪个组件负责执行存储在内存中的指令?A. 微处理器(答案)B. 内存芯片C. 输入设备D. 输出设备2、嵌入式系统中,Bootloader的主要功能是什么?A. 加载并启动操作系统(答案)B. 提供用户界面C. 管理文件系统D. 执行应用程序3、以下哪种总线类型在嵌入式系统中常用于连接低速外设?A. PCIB. USB 3.0C. I2C(答案)D. HDMI4、在嵌入式Linux系统中,交叉编译的目的是什么?A. 在目标平台上直接编译代码B. 在一个平台上编译代码,以在另一个不同架构的平台上运行(答案)C. 提高编译速度D. 减少编译产生的二进制文件大小5、以下哪个协议常用于嵌入式设备之间的低功耗无线通信?A. Bluetooth LE(答案)B. EthernetC. HDMID. USB6、在嵌入式软件开发中,中断服务程序(ISR)的主要作用是?A. 处理外部事件或异常情况,快速响应并执行特定任务(答案)B. 管理内存分配C. 控制设备电源状态D. 实现多任务并发执行7、以下哪种存储器类型在嵌入式系统中通常用作高速缓存?A. SRAM(答案,静态随机访问存储器,常用于高速缓存)B. EEPROMC. SD卡D. 硬盘8、在嵌入式系统设计中,使用看门狗定时器的主要目的是?A. 防止程序跑飞或死循环,提高系统可靠性(答案)B. 实现精确定时功能C. 控制设备开关机D. 测量系统功耗9、以下哪个工具在嵌入式开发中常用于调试和分析程序?A. 逻辑分析仪(答案)B. 示波器C. 万用表D. 频谱分析仪10、在嵌入式Linux内核配置中,以下哪个选项通常用于裁剪内核功能,以减少内存占用和提高性能?A. make menuconfig(答案,用于配置内核选项,进行裁剪)B. make cleanC. make allD. make install。

嵌入式软件面试题

嵌入式软件面试题

嵌入式软件面试题嵌入式软件开发是一门关于在特定硬件平台上运行的软件设计与开发的技术。

面试时,考察候选人的能力是嵌入式软件开发的核心竞争力。

以下是一些常见的嵌入式软件面试题:1. 请介绍一下你在嵌入式软件开发领域的经验和技能。

在回答这个问题时,你可以谈论你之前从事的嵌入式软件开发项目、参与的团队以及你所熟悉的嵌入式开发平台和编程语言。

此外,还可以谈论一些你在这个领域取得的成就和面对的挑战。

2. 请解释一下什么是嵌入式系统?嵌入式系统是指一种被嵌入到其他设备中的计算机系统,它运行特定的任务并具有独立的硬件和软件。

嵌入式系统通常用于控制和监控设备,如汽车电子、家用电器、通信设备等。

它们基于特定的处理器架构,并具有可量化的实时性能要求。

3. 请介绍一下常见的嵌入式开发平台和编程语言。

常见的嵌入式开发平台包括:Arduino、Raspberry Pi、STM32等。

这些平台提供了开发者所需的硬件环境,并为开发者提供了相应的开发工具链。

而在嵌入式开发过程中常用的编程语言有C、C++以及汇编语言。

4. 你在嵌入式软件开发过程中遇到过什么挑战?你是如何解决的?在这个问题上,你可以选择从技术层面或者团队协作层面来回答。

举例来说,你可以谈论你在优化嵌入式代码性能方面遇到的挑战,以及你采用的技术手段解决这些问题。

或者你可以谈论你在团队中遇到的合作问题,以及你如何通过与他人的协作来克服这些障碍。

5. 如何进行嵌入式软件的调试和测试?嵌入式软件的调试和测试是确保代码质量和系统功能可靠性的关键步骤。

在回答这个问题时,你可以谈论你在嵌入式软件开发过程中使用的调试工具和技术,例如仿真器、调试器、示波器等。

同时,还可以提到你通常遵循的测试策略和方法,如单元测试、集成测试和验证测试等。

6. 请谈谈你对软件性能优化的理解。

嵌入式系统通常要求具有较高的实时性能。

在这方面的优化包括提高代码执行效率、减少资源占用以及优化功耗管理等。

在回答这个问题时,你可以谈论你在嵌入式软件开发中采用的性能优化技术,例如使用高效的算法和数据结构、利用特定硬件指令或者优化内存管理等。

嵌入式面试题目试题(3篇)

嵌入式面试题目试题(3篇)

第1篇一、基础知识1. 问题:简述嵌入式系统的定义和特点。

答案:嵌入式系统是指将计算机技术应用于特定领域,将硬件和软件结合在一起,形成具有特定功能的独立系统。

其特点包括:实时性、可靠性、低功耗、小体积、低成本等。

2. 问题:嵌入式系统与通用计算机系统的区别有哪些?答案:嵌入式系统与通用计算机系统的区别主要有以下几点:(1)设计目标不同:嵌入式系统面向特定应用,通用计算机系统面向通用应用;(2)硬件资源不同:嵌入式系统硬件资源有限,通用计算机系统硬件资源丰富;(3)软件系统不同:嵌入式系统软件系统相对简单,通用计算机系统软件系统复杂;(4)实时性要求不同:嵌入式系统对实时性要求较高,通用计算机系统实时性要求较低。

3. 问题:嵌入式系统中的CPU有哪些特点?答案:嵌入式系统中的CPU具有以下特点:(1)低功耗:为了满足嵌入式系统对功耗的要求,CPU需要具备低功耗的特性;(2)高性能:为了提高嵌入式系统的处理速度,CPU需要具备高性能的特性;(3)可扩展性:为了适应不同的应用需求,CPU需要具备可扩展性;(4)集成度:为了减小嵌入式系统的体积,CPU需要具备高集成度。

4. 问题:什么是嵌入式系统中的裸机?答案:嵌入式系统中的裸机是指没有操作系统和应用程序的CPU。

裸机主要用于学习和实验,也可以用于一些对实时性要求较高的应用。

5. 问题:什么是嵌入式系统中的实时操作系统(RTOS)?答案:实时操作系统(RTOS)是一种专门为实时应用设计的操作系统。

它具有以下特点:(1)实时性:RTOS能够满足实时应用对时间的要求;(2)可靠性:RTOS具有较高的可靠性,能够保证系统稳定运行;(3)可预测性:RTOS的性能可预测,便于应用开发。

二、硬件知识1. 问题:简述嵌入式系统中常用的存储器类型及其特点。

答案:嵌入式系统中常用的存储器类型及其特点如下:(1)RAM(随机存储器):用于存储临时数据,断电后数据会丢失;(2)ROM(只读存储器):用于存储程序代码,断电后数据不会丢失;(3)Flash(闪存):具有RAM和ROM的特点,既可读写,又可断电保存数据;(4)EEPROM(电可擦可编程只读存储器):可擦写,断电后数据不会丢失。

嵌入式面试经典100题

嵌入式面试经典100题

嵌入式面试经典100题嵌入式系统是当今快速发展的领域之一。

面试官通常会问一些经典的问题来评估求职者的知识和技能。

以下是 100 个嵌入式面试经典问题,有助于准备嵌入式面试。

1. 什么是嵌入式系统?2. 嵌入式系统有哪些组成部分?3. 嵌入式系统通常用于哪些领域?4. 什么是微控制器?5. 微控制器有哪些类型?6. 解释一下位运算符。

7. 什么是布尔运算?8. 解释一下存储器分段。

9. 什么是中断?10. 解释一下中断向量表。

11. 什么是浮点数?12. 解释一下浮点数运算。

13. 什么是传感器?14. 解释一下传感器工作原理。

15. 什么是执行器?16. 解释一下执行器工作原理。

17. 什么是总线?18. 解释一下总线工作原理。

20. 解释一下串口工作原理。

21. 什么是以太网?22. 解释一下以太网工作原理。

23. 什么是蓝牙?24. 解释一下蓝牙工作原理。

25. 什么是 Wi-Fi?26. 解释一下 Wi-Fi 工作原理。

27. 什么是 LED?28. 解释一下 LED 工作原理。

29. 什么是 LCD?30. 解释一下 LCD 工作原理。

31. 什么是纽扣电池?32. 解释一下纽扣电池工作原理。

33. 什么是定时器?34. 解释一下定时器工作原理。

35. 什么是串口通信?36. 解释一下串口通信原理。

37. 什么是 FPGA?38. 解释一下 FPGA 工作原理。

39. 什么是 PLC?40. 解释一下 PLC 工作原理。

42. 解释一下触摸屏工作原理。

43. 什么是传感器数据采集?44. 解释一下传感器数据采集原理。

45. 什么是 PWM?46. 解释一下 PWM 工作原理。

47. 什么是功率放大器?48. 解释一下功率放大器工作原理。

49. 什么是串口通信协议?50. 解释一下串口通信协议原理。

51. 什么是温度传感器?52. 解释一下温度传感器工作原理。

53. 什么是湿度传感器?54. 解释一下湿度传感器工作原理。

嵌入式c 面试题

嵌入式c 面试题

1、在嵌入式C开发中,关于volatile关键字的作用,以下描述正确的是?A. 用于定义常量B. 告诉编译器该变量可能会被意外改变,防止编译器过度优化(答案)C. 用于定义指针类型D. 用于定义数组类型2、在嵌入式系统中,通常使用哪种调试方法来跟踪程序执行过程中的变量和函数调用?A. 使用高级语言调试器B. 使用JTAG接口进行调试(答案)C. 使用文本编辑器进行代码审查D. 使用模拟器运行代码3、以下哪项不是嵌入式系统常用的通信接口?A. SPIB. I2CC. HDMI(答案)D. UART4、在嵌入式C编程中,以下哪种数据结构常用于实现任务调度?A. 链表B. 队列(答案)C. 集合D. 树5、关于嵌入式系统中的中断处理,以下描述错误的是?A. 中断是硬件或软件发出的信号,用于通知CPU有事件需要处理B. 中断服务程序(ISR)是响应中断而执行的代码C. 中断向量表是存储中断服务程序地址的数组D. 所有的中断都必须由操作系统来管理(答案)6、在嵌入式系统中,为了节省存储空间,通常会使用哪种类型的库?A. 动态链接库B. 静态链接库(答案)C. 共享库D. 运行时库7、以下哪项不是嵌入式系统低功耗设计的方法?A. 使用低功耗的硬件组件B. 优化软件算法以减少CPU的使用率C. 增加系统的时钟频率(答案)D. 使用睡眠模式来减少功耗8、在嵌入式C编程中,以下哪个宏定义常用于防止头文件被重复包含?A. #define ONCEB. #pragma onceC. #ifndef, #define, #endif(答案)D. #define HEADER。

嵌入式面试题及答案

嵌入式面试题及答案

嵌入式面试题及答案1、下面函数调用语句func((exp1,exp2),(exp3,exp4,exp5));中func函数有实参的个数为()? [单选题] *A、1B、2(正确答案)C、3D、4答案解析:函数传参的理解2、一个函数无返回值时,应选择下列的说明符是()? [单选题] *A、staticB、externC、void(正确答案)D、无说明符答案解析:关键字的理解3、设有数组:char array[]="China";则数组array所占的空间为()? [单选题] *A、4个字节B、5个字节C、6个字节(正确答案)D、7个字节答案解析:字符数组初始化的理解4、设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是()? [单选题] *A、k=*p1+*p2;B、p2=k;(正确答案)C、p1=p2;D、k=*p1;答案解析:一维数组的使用5、在声明语句int *fun();中,fun表示()? [单选题] *A、一个返回值为指针型的函数名(正确答案)B、一个用于指向函数的指针变量C、一个用于指向一维数组的行指针D、一个用于指向int型数据的指针变量答案解析:函数的声明6、若变量c为char类型,能正确判断出c为小写字母的表达式是()? [单选题] *A、'a'<=c<='z'B、(c>='a')||(c<='z')C、('a'<=c)and('z'>=c)D、(c>='a')&&(c<='z')(正确答案)答案解析:运算符的理解7、以下关于switch语句和break描述中 , ()是正确的。

[单选题] *A、在switch语句中,可以根据需要使用或不使用break语句(正确答案)B、switch语句中必须用break语句C、break语句只能用于switch语句D、break语句是switch语句必须的一部分答案解析:开关语句的理解8、在C语言程序中,当while语句构成的循环中的条件为()时,结束循环。

嵌入式面试题大全

嵌入式面试题大全

嵌入式面试题大全
嵌入式面试题涉及的知识面广泛,包括嵌入式系统的基础知识、C/C++语言、操作系统、电路和电子技术等。

以下是一些嵌入式面试中常见的题目:
1. 请简述嵌入式系统的定义和特点。

2. 什么是实时操作系统?请列举几个常见的实时操作系统。

3. 描述一下嵌入式系统中常用的数据结构和算法。

4. 请简述嵌入式软件开发的一般流程。

5. 什么是嵌入式系统的低功耗设计?为什么它很重要?
6. 请简述嵌入式系统中常用的通信协议。

7. 请简述嵌入式系统中常用的硬件接口。

8. 如何进行嵌入式系统的电源管理?
9. 请简述嵌入式系统中常用的软件架构。

10. 如何进行嵌入式系统的性能测试和优化?
11. 请简述嵌入式系统中常用的开发工具和调试方法。

12. 如何进行嵌入式系统的安全设计和保护?
13. 请简述嵌入式系统中的常见故障和解决方法。

14. 如何进行嵌入式系统的可维护性和可靠性设计?
15. 请简述嵌入式系统中的中断处理和任务调度。

16. 如何进行嵌入式系统的硬件设计和软件设计协同工作?
17. 请简述嵌入式系统中常用的异步通信方法。

18. 如何进行嵌入式系统的资源管理和内存优化?
19. 请简述嵌入式系统中的多线程编程和多任务管理。

20. 如何进行嵌入式系统的性能分析和优化?
以上是一些常见的嵌入式面试题,当然具体的题目还会根据具体的岗位和要求有所不同。

建议在准备面试时,除了掌握基础知识和技能外,还要了解相关公司的业务和技术方向,以及行业的发展趋势和最新技术动态。

嵌入式面试题

嵌入式面试题

嵌入式面试题一、简介嵌入式系统是指在特定用途的计算机硬件平台上,集成了微处理器、存储器、外围设备以及实时操作系统等关键元素的一种特殊计算机系统。

嵌入式系统广泛应用于汽车、家电、医疗设备、通信设备等各个领域。

随着嵌入式技术的发展,需求不断增长,嵌入式岗位的面试也变得越来越重要。

二、C语言基础1. 请简要介绍C语言的特点及其在嵌入式系统中的应用。

答:C语言是一种高级编程语言,具有语法简洁、执行效率高、适合系统级编程等特点。

在嵌入式系统中,C语言被广泛应用于底层驱动的编写、中断处理、外设控制等方面。

2. 请解释以下C语言的关键字:const、volatile 和 static。

答:const关键字用于声明常量,被声明为const的变量的数值在程序运行过程中不可修改。

volatile关键字用于声明易变的变量,防止编译器对其进行优化,保证每次访问都会从内存中读取最新值。

static关键字可以用于函数内部和函数外部,函数内部的static变量生命周期会延长到程序结束,函数外部的static变量作用域只限于当前文件。

三、微处理器和微控制器1. 什么是微处理器和微控制器?它们之间有什么区别?答:微处理器是一种集成了CPU、ALU、寄存器和控制单元的芯片,它用于处理和执行算术、逻辑运算以及控制指令。

微控制器是一种集成了CPU、内存、IO接口以及定时器、ADC等外设的芯片,它是一整套可以独立运行的嵌入式系统。

两者的区别在于微处理器需要外部芯片才能构成完整的系统,而微控制器则包含了所需的外设接口,能够直接运行。

2. 请列举几种常见的微控制器类型及其应用领域。

答:常见的微控制器类型包括:8051系列、AVR系列、PIC系列等。

8051系列广泛应用于家电、汽车电子、电力电子等领域;AVR系列常用于工业自动化、单片机控制等;PIC系列适用于安防监控、智能仪表等。

四、实时操作系统(RTOS)1. 请解释实时操作系统的概念及其特点。

嵌入式C语言面试题(附答案)

嵌入式C语言面试题(附答案)

嵌入式C语言面试题(附答案)int main(int argc,char *argv[]){int c=9,d=0;c=c++%5;d=c;printf(d=%d\n,d);return 0;}a) 写出程序输出b) 在一个可移植的系统中这种表达式是否存在风险?why? #include stdio.hint a=0;int b;static char c;int main(int argc,char *argv[]){char d=4;static short e;a++;b=100;c=(char)++a;e=(++d)++;printf(a=%d, b=%d, c=%d, d= %d, e=%d,a,b,c,d,e);return 0;}a) 写出程序输出b) 编译器假如安排各个变量(a,b,c,d)在内存中的布局(eg. stack,heap,data section,bss section),最好用图形方式描述。

2 中断是嵌入式系统中重要的组成局部,这导致了很多编译开发商供应一种扩展:让标准C支持中断,产生了一个新的关键字__interrupt。

下面的代码就使用了__interrupt关键字去定义了一个中断效劳子程序(ISR),请评论以下这段代码。

__interrupt double compute_area(double radius){double area = PI * radius *radius;printf(nArea = %f, area);return area;}3 C/C++根底学问问题a) 关键字volatile在编译时有什么含义?并给出三个不同使用场景的例子(可以伪代码或者文字描述)。

b) C语言中static关键字的详细作用有哪些 ?c) 请问下面三种变量声明有何区分?请给出详细含义int const *p;int* const p;int const* const p;4 嵌入式系统相关问题a) 对于整形变量A=0x12345678,请画出在little endian及big endian的方式下在内存中是如何存储的。

嵌入式C语言面试题汇总(超经典)

嵌入式C语言面试题汇总(超经典)

第一部分:基本概念及其它问答题1、关键字static的作用是什么?这个简单的问题很少有人能回答完全。

在C语言中,关键字static有三个明显的作用:1).在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。

2).在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。

它是一个本地的全局变量。

3).在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。

那就是,这个函数被限制在声明它的模块的本地范围内使用。

大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。

这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。

答、1)引用必须被初始化,指针不必。

2)引用初始化以后不能被改变,指针可以改变所指的对象。

3)不存在指向空值的引用,但是存在指向空值的指针。

指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。

程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。

流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它情况都推荐使用引用。

3、.h头文件中的ifndef/define/endif答:防止该头文件被重复引用。

4、#include与#include“file.h”的区别?答:前者是从Standard Library的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h。

5、描述实时系统的基本特性答:在特定时间内完成特定的任务,实时性与可靠性。

6、全局变量和局部变量在内存中是否有区别?如果有,是什么区别?答:全局变量储存在静态数据区,局部变量在堆栈中。

7、什么是平衡二叉树?答:左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。

8、堆栈溢出一般是由什么原因导致的?答:1.没有回收垃圾资源2.层次太深的递归调用9、冒泡排序算法的时间复杂度是什么?答:O(n^2)10、什么函数不能声明为虚函数?答:constructor答:队列先进先出,栈后进先出12、不能做switch()的参数类型答:switch的参数不能为实型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。

这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。

从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。

这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字符的ASCII值。

这些问题着重考察你的系统调用和内存分配策略方面的能力吗?这标志着出题者也许花时间在微机上而不是在嵌入式系统上。

如果上述任何问题的答案是"是"的话,那么我知道我得认真考虑我是否应该去做这份工作。

从面试者的角度来讲,一个测试也许能从多方面揭示应试者的素质:最基本的,你能了解应试者C 语言的水平。

不管怎么样,看一下这人如何回答他不会的问题也是满有趣。

应试者是以好的直觉做出明智的选择,还是只是瞎蒙呢?当应试者在某个问题上卡住时是找借口呢,还是表现出对问题的真正的好奇心,把这看成学习的机会呢?我发现这些信息与他们的测试成绩一样有用。

有了这些想法,我决定出一些真正针对嵌入式系统的考题,希望这些令人头痛的考题能给正在找工作的人一点帮助。

这些问题都是我这些年实际碰到的。

其中有些题很难,但它们应该都能给你一点启迪。

这个测试适于不同水平的应试者,大多数初级水平的应试者的成绩会很差,经验丰富的程序员应该有很好的成绩。

为了让你能自己决定某些问题的偏好,每个问题没有分配分数,如果选择这些考题为你所用,请自行按你的意思分配分数。

预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。

3) 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。

4) 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。

记住,第一印象很重要。

2 . 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。

#define MIN(A,B) ((A) <= (B) ? (A) : (B)) 这个测试是为下面的目的而设的:1) 标识#define在宏中应用的基本知识。

这是很重要的。

因为在嵌入(inline)操作符变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。

2)三重条件操作符的知识。

这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else 更优化的代码,了解这个用法是很重要的。

3) 懂得在宏中小心地把参数用括号括起来4) 我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事?least = MIN(*p++, b);3. 预处理器标识#error的目的是什么?如果你不知道答案,请看参考文献1。

这问题对区分一个正常的伙计和一个书呆子是很有用的。

只有书呆子才会读C语言课本的附录去找出象这种问题的答案。

当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。

死循环(Infinite loops)4. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?这个问题用几个解决方案。

我首选的方案是:while(1){}一些程序员更喜欢如下方案:for(;;){}这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。

如果一个应试者给出这个作为方案,我将用这个作为一个机会去探究他们这样做的基本原理。

如果他们的基本答案是:"我被教着这样做,但从没有想到过为什么。

"这会给我留下一个坏印象。

第三个方案是用gotoLoop:...goto Loop;应试者如给出上面的方案,这说明或者他是一个汇编语言程序员(这也许是好事)或者他是一个想进入新领域的BASIC/FORTRAN程序员。

数据声明(Data declarations)5. 用变量a给出下面的定义a) 一个整型数(An integer)b)一个指向整型数的指针( A pointer to an integer)c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an intege)rd)一个有10个整型数的数组(An array of 10 integers)e) 一个有10个指针的数组,该指针是指向一个整型数的。

(An array of 10 pointers tointegers)f) 一个指向有10个整型数数组的指针( A pointer to an array of 10 integers)g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a functionthat takes an integer as an argument and returns an integer)h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数(An array of ten pointers to functions that take an integer argument andreturn an integer )答案是:a) int a; // An integerb) int *a; // A pointer to an integerc) int **a; // A pointer to a pointer to an integerd) int a[10]; // An array of 10 integerse) int *a[10]; // An array of 10 pointers to integersf) int (*a)[10]; // A pointer to an array of 10 integersg) int (*a)(int); // A pointer to a function a thattakes an integer argument and returns an integerh) int (*a[10])(int); // An array of 10 pointers tofunctions that take an integer argument and return aninteger人们经常声称这里有几个问题是那种要翻一下书才能回答的问题,我同意这种说法。

当我写这篇文章时,为了确定语法的正确性,我的确查了一下书。

但是当我被面试的时候,我期望被问到这个问题(或者相近的问题)。

因为在被面试的这段时间里,我确定我知道这个问题的答案。

应试者如果不知道所有的答案(或至少大部分答案),那么也就没有为这次面试做准备,如果该面试者没有为这次面试做准备,那么他又能为什么出准备呢?Static6. 关键字static的作用是什么?这个简单的问题很少有人能回答完全。

在C语言中,关键字static有三个明显的作用:1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。

2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。

它是一个本地的全局变量。

3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。

那就是,这个函数被限制在声明它的模块的本地范围内使用。

大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。

这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。

Const7.关键字const有什么含意?我只要一听到被面试者说:"const意味着常数",我就知道我正在和一个业余者打交道。

去年Dan Saks已经在他的文章里完全概括了const的所有用法,因此ESP(译者:Embedded SystemsProgramming)的每一位读者应该非常熟悉const能做什么和不能做什么.如果你从没有读到那篇文章,只要能说出const意味着"只读"就可以了。

尽管这个答案不是完全的答案,但我接受它作为一个正确的答案。

(如果你想知道更详细的答案,仔细读一下Saks的文章吧。

)如果应试者能正确回答这个问题,我将问他一个附加的问题:下面的声明都是什么意思?const int a;int const a;const int *a;int * const a;int const * a const;/******/前两个的作用是一样,a是一个常整型数。

第三个意味着a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)。

第四个意思a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。

最后一个意味着a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)。

如果应试者能正确回答这些问题,那么他就给我留下了一个好印象。

顺带提一句,也许你可能会问,即使不用关键字,也还是能很容易写出功能正确的程序,那么我为什么还要如此看重关键字const呢?我也如下的几下理由:1) 关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。

如果你曾花很多时间清理其它人留下的垃圾,你就会很快学会感谢这点多余的信息。

(当然,懂得用const的程序员很少会留下的垃圾让别人来清理的。

)2) 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。

3) 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。

简而言之,这样可以减少bug的出现。

Volatile8. 关键字volatile有什么含意?并给出三个不同的例子。

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。

精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。

相关文档
最新文档