C/C++|物联网开发入门+项目实战|宏定义|数据声明|位操作|类型修饰符|访问固定内存位置|嵌入式C语言高级|常见面试题目讲解-学习笔记(13)

news2024/11/18 18:42:16

文章目录

  • 常见面试题目讲解
    • 宏定义
    • 数据声明
    • 类型修饰符的使用总结
    • 位操作
    • 访问固定内存位置

参考: 麦子学院-嵌入式C语言高级-C语言函数的使用-常见面试题目讲解
参考: 嵌入式程序员应该知道的0x10个基本问题

常见面试题目讲解

宏定义

1 .用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
#define 宏名 宏体
宏名:大写字母表示
#define SECOND_OF_YEAR 123456 //不推荐
#define SECOND_OF_YEAR (365243600)UL //常量表达式,编译时就计算完成,需要保护

INT的常量的范围
char 8bit,0-255 最多256 需要合适的盒子,所以加上L,无符号加U
16 bit,0-65535 最多65536
int a = SECOND_OF_YEAR;

数据声明

用变里a给出下面的定义
a)一个整型数〈An integer)
int a;
b)一个指向整型数的指针(A pointer to an integer)
int *a;
c)一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer toan integer)
int **a;
d)一个有10个整型数的数组〈An array of 10 integers)
int a[10];
e)一个有10个指针的数组,该指针是指向一个整型的。(An array of 10 pointers tointegers)

int* a[10] // *修饰10,每一个元素的属性,是个地址,[]修饰a,右侧优先级高,a升级为数组标签,a的左侧变为对存放内容的修饰,int修饰*指向整形数

f)一个指向有10个整型数数组的指针( A pointer to an array of 10 integers)

int[10]*a  ----->int (*a)[10]

g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to afunction that takes an integer as an argument and retums an integer)

int fun(int) *a----->int (*a)(int)

h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数(An array of ten pointers to functions that take an integer argument and return aninteger
int (*a[10])(int)
在这里插入图片描述

类型修饰符的使用总结

关键字static的作用是什么?
1.修饰局部变量;
默认局部变量在栈空间存在,生存期较短;
局部静态化,局部变量在数据段中保存,程序结束才结束
2.修饰全局变量;
编译时防止重命名(多个名),只在本文件内起作用
3.修饰全局函数。
编译时防止重命名(多个名),只在本函数内起作用
关键字const有什么含意?
C:只读,建议性,不具备强制性 不是常量,尽量不修改,指针,越界,溢出都能修改
c++:常量
关键字volatile有什么含意?并给出三个不同的例子·
防止C语言编译器优化,该变量的修改可能通过第三方来修改

位操作

嵌入式系统总是要用户对变里或寄存器进行位操作。
给定一个整型变里a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。
设置就是set 1,清除就是clear 1.
unsigned int a;
a|=(0x1<<3);
a &=~(0x1<<4);

访问固定内存位置

在某工程中,要求设置一绝对地址为0x67a9的整型变里的值为0xaa66。编译器是一个纯粹的ANSI疴译器。写代码去完成这一任务。
方式1:
int *p = (int *)0x67a9;
p[0] = 0xaa66;
方式2:
*((int )0x67a9) = 0xaa66;
方式3:
((void(
)(void))0x67a9)();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/451499.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ERD Online 4.1.0对接ChatGPT,实现AI建模、SQL自由

ERD Online 是全球第一个开源、免费在线数据建模、元数据管理平台。提供简单易用的元数据设计、关系图设计、SQL查询等功能&#xff0c;辅以版本、导入、导出、数据源、SQL解析、审计、团队协作等功能、方便我们快速、安全的管理数据库中的元数据。 4.1.0 ❝ :memo: fix(erd): …

CARIS11.3使用一段时间后的经验和总结

虽然CARIS11.4存在一些小bug&#xff0c;但CARIS11.3使用没有什么问题&#xff0c;相对于CARIS9而言&#xff0c;在导入数据和程序界面有些改进。用过CARIS9的同学都知道其建立项目和导入数据的步骤比较繁琐。而CARIS11.3导入数据的过程比较简洁&#xff0c;基本步骤如下&#…

把阿里大鸟花3个月时间整理的软件测试面经偷偷给室友,差点被他开除了···

写在前面 “这份软件测试面经看起来不错&#xff0c;等会一起发给他吧”&#xff0c;我看着面前的面试笔记自言自语道。 就在这时&#xff0c;背后传来了leder“阴森森”的声音&#xff1a;“不错吧&#xff0c;我可是足足花了三个月整理的” 始末 刚入职阿里的我收到了大学…

牛客网Verilog刷题——VL2

牛客网Verilog刷题——VL2 题目答案 题目 要求用verilog实现两个串联的异步复位的T触发器的逻辑&#xff0c;如下图所示。   模块的输入输出信号如下表&#xff0c;需要注意的是&#xff1a;这里rst是低电平复位&#xff0c;且采用异步复位的方式复位。 信号类型输入/输出c…

2023年淮阴工学院五年一贯制专转本大学语文考试大纲

2023年淮阴工学院五年一贯制专转本大学语文考试大纲 一、考试目标 淮阴工学院五年一贯制高职专转本入学考试秘书学专业《大学语文》考试是我校为招收五年一贯制高职专转本学生设置的具有选拔性质的考试科目。其目的是科学、公平、有效地测试考生是否具备攻读秘书学本科学位所…

( “树” 之 BST) 530. 二叉搜索树的最小绝对差 ——【Leetcode每日一题】

二叉查找树&#xff08;BST&#xff09;&#xff1a;根节点大于等于左子树所有节点&#xff0c;小于等于右子树所有节点。 二叉查找树中序遍历有序。 ❓ 530. 二叉搜索树的最小绝对差 难度&#xff1a;简单 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同…

特征选择算法 | Matlab 基于无限潜在特征选择算法(ILFS)的分类数据特征选择

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 特征选择算法 | Matlab 基于无限潜在特征选择算法(ILFS)的分类数据特征选择 部分源码 %

Vite 4.3 is out!

原文地址 本次迭代中&#xff0c;我们专注于改善开发服务器的性能。我们优化了解析逻辑&#xff0c;改进了热路径&#xff0c;并实现了更智能的缓存&#xff0c;用于查找 package.json、TS 配置文件和解析的 URL 等。 你可以在 Vite 的贡献者之一的博客文章中详细了解本次性能…

数据结构之二分搜索树

树在我们底层结构中是被广泛运用的,但是为什么会选择它却是我们需要了解的东西,接下来 让我们一起走进树的世界 请看下图&#xff1a; 在我们生活中&#xff0c;有很多关于树的存在&#xff0c;比如电脑中的磁盘&#xff08;C D盘&#xff09;&#xff0c;在文章中写的目录都是…

LangChain与大型语言模型(LLMs)应用基础教程:记忆力组件

如果您还没有看过我之前写的两篇博客&#xff0c;请先看一下&#xff0c;这样有助于对本文的理解&#xff1a; LangChain与大型语言模型(LLMs)应用基础教程:Prompt模板 LangChain与大型语言模型(LLMs)应用基础教程:信息抽取 LangChain与大型语言模型(LLMs)应用基础教程:角色…

在线甘特图制作教程

在线甘特图制作教程 很多的甘特图工具都是需要下载到本地&#xff0c;并且做好了之后也不方便分享给别人。给大家分享一个在线的甘特图制作工具 不需要登录注册 知竹甘特图 https://www.yxsss.com/ 打开知竹甘特图 https://www.yxsss.com/gatt/3b7d1ecb7211b9473e7d1ecb72 …

015:Mapbox GL绘制修改多边形,实时更新面积

第015个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中添加draw组件,绘制多边形,编辑多边形,实时显示面积值。这里使用turf来计算面积值。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共92行)安装…

ASP.NET Core MVC 从入门到精通之wwwroot和客户端库

随着技术的发展&#xff0c;ASP.NET Core MVC也推出了好长时间&#xff0c;经过不断的版本更新迭代&#xff0c;已经越来越完善&#xff0c;本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容&#xff0c;适用于初学者&#xff0c;在校毕业生&#xff0c…

remvw布局

文章目录 rem&vw布局rem布局方式原理使用第三框架 vw布局方式原理使用 rem&vw混合布局方式vw方案案例 rem&vw布局 rem布局方式 原理 rem是相对于根元素&#xff08;html元素&#xff09;的字体大小来计算的&#xff0c;因此可以根据不同的屏幕尺寸和设备类型自动…

EF Core入门

文章目录 前言一、EF Core环境搭建二、基本的增删改查1.增加数据2.查询数据3.修改数据&#xff0c;删除数据 前言 EF Core是微软官方提供的ORM框架。EF Core不仅可以操作Microsoft SQL Server、MySQL、Oracle、PostgreSQL等数据库&#xff0c;而且可以操作Azure Cosmos DB等No…

【让你惊呼的“神器”,ChatGPT inside】

让你惊呼的“神器”&#xff0c;ChatGPT inside ChatGPT 的横空出世&#xff0c;已经搅动了整个科技圈。而它给自然语言处理领域带来的革命性变革&#xff0c;也为很多初创公司和开发者打开了新世界的大门。 在过去&#xff0c;自然语言处理技术通常只被各大科技巨头藏私&…

玩机搞机----root面具的安装 更新 隐藏root 德尔塔面具等等综合解析

目前的机型都是root面具&#xff0c;今天的帖子主要分析下面具的一些使用常识。一般面具如何使用一参考我前面的帖子。基本步骤都是解锁bl---修补boot---刷入boot----安装面具apk。但目前很多app会检测系统root&#xff0c;对于有些敏感类软件例如银行等等然后会检测当前系统ro…

C/C++每日一练(20230423)

目录 1. 多组输入求和 ※ 2. 螺旋矩阵 II &#x1f31f;&#x1f31f; 3. 路径交叉 &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 多组…

用golang实现traceroute

Traceroute 概念 traceroute是一种网络诊断工具&#xff0c;通过traceroute可以诊断出本机到目的地IP之间的路由情况&#xff0c;例如路由跳数、延迟、是否可达等信息。该工具在linux环境下的命令是traceroute或者tracepath&#xff0c;在windows下命令是tracert。 工作原理…

动态路由四大天王:OSPF、RIP、IS-IS、BGP,收藏这篇文章足以!

在计算机网络中&#xff0c;OSPF、RIP、IS-IS、BGP 都是常见的路由协议。它们分别具有不同的特点和适用场景。本文将对这四种路由协议进行对比&#xff0c;以帮助读者更好地了解它们的优缺点和适用范围。 OSPF OSPF&#xff08;Open Shortest Path First&#xff09;是一种链路…