当前位置: 首页 > news >正文

嵌入式C语言面试题笔试题

一、常见的关键词:sizeof(strlen)、static、const、volatitle(会持续更新)

1、sizeof和strlen的区别

(1)sizeof是求数据类型所占空间的大小,是一个操作符,在编译时计算出结果。

(2)Strlen是求以\0结尾的字符串的实际长度,是一个函数,在运行时才运算出结果,使用strlen求长度时候要进行初始化。

2、static通过被问作用,以及在程序中有两个陷阱需要注意:函数中static修饰局部变量和static修饰全局变量

(1)static定义的全局变量只能在本文件中使用

(2)加了static的局部变量会延长其生命周期,存在于整个程序的执行过程。但是其他函数无法使用。

(3)static函数只会在该模块中可见

3、const通常考察作用

(1)通常是定义常量

(2)修饰函数参数 返回值,被修饰的东西会被保护起来,不会改变。

4、volatile通常考察作用和使用环境

Volatile修饰的变量说明该变量的值会随时发生变化的,每次用的时候需要从存储该变量的地址中直接获取。

(1)中断服务程序中修改的供其他程序检测的变量需要加Volatile。

(2)多任务环境下个任务间共享的标志位需要加Volatile。

(3)存储器映射的硬件寄存器通常也要加Volatile。

5、extern:extern标识的变量或者函数声明定义在别的文件中,提示编译器遇到此变量和函数时候在其他模块中寻找其定义。

extern和typedef的不同在于:

(1)typedef是用来定义一种数据类型的别名,增强程序的可读性。而define主要是用来定义常量,以及书写复杂和使用频繁的宏定义。

(2)执行时间不同:typedef是编译过程的一部分,有类型检查的功能。define是宏定义,是预编译的部分,其发生在编译之前。

(3)作用域不同:typedef有作用域限定。define不受作用域约束,只要是在define声明后的引用都是正确的。

(4)对指针的操作不同:typedef和define定义的指针时有很大的区别。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 华为和锐捷设备流统配置
  • Androidstudio项目加载不出来,显示Connect timed out
  • Android 应用加固与重签名—使用AndroidStudio自带工具 apksigner
  • go语言后端开发学习(一)——JWT的介绍以及基于JWT实现登录验证
  • 项目:基于httplib/消息队列负载均衡式在线OJ
  • 【计算机网络】个人学习笔记——第四章 网络层:CIDR编址IP地址子网掩码ICMP路由聚合与子网划分ARP协议
  • 工业无线通信解决方案,企业在进行智能化升级改造
  • vue3模板语法总结
  • ios 获取图片的一部分区域
  • 01 Linux网络设置
  • 调整SinoDB数据库日志模式
  • 十种排序方法
  • 架构设计-用户信息及用户相关的密码信息设计
  • 目前常用的后端技术
  • 课时152:项目发布_手工发布_方案解读
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • AHK 中 = 和 == 等比较运算符的用法
  • Android单元测试 - 几个重要问题
  • Angularjs之国际化
  • egg(89)--egg之redis的发布和订阅
  • flutter的key在widget list的作用以及必要性
  • Git同步原始仓库到Fork仓库中
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Java的Interrupt与线程中断
  • Linux CTF 逆向入门
  • Python 基础起步 (十) 什么叫函数?
  • python大佬养成计划----difflib模块
  • spring + angular 实现导出excel
  • Vue实战(四)登录/注册页的实现
  • 初探 Vue 生命周期和钩子函数
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 番外篇1:在Windows环境下安装JDK
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 后端_ThinkPHP5
  • 简单基于spring的redis配置(单机和集群模式)
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 日剧·日综资源集合(建议收藏)
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 移动端 h5开发相关内容总结(三)
  • AI算硅基生命吗,为什么?
  • NLPIR智能语义技术让大数据挖掘更简单
  • # Java NIO(一)FileChannel
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • $.ajax()
  • $nextTick的使用场景介绍
  • (1)Android开发优化---------UI优化
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (ibm)Java 语言的 XPath API
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (万字长文)Spring的核心知识尽揽其中
  • (学习总结16)C++模版2
  • (转载)虚函数剖析