嵌入式c学习四
c语言的输入输出:ANSI组织发布的标准c库,使用函数需要包含对应头文件,使用输入输出函数时需要包含stdio.h (stdio -> standard input output)标准输入输出
格式化输出:int printf(const char * restrict format, ...),printf函数返回值是被输出的字符的数量,不包含'\0',遇到\n输出结束,当发生错误时返回一个负整数,c语言中字符串用双引号( “ ” )表示
%转换说明符
转换说明:
d:以有符号的10进制输出、f:浮点型输出
o,u,x/X:把无符号整型转换为8,10,16进制输出
c:以字符型输出
s:以字符串型输出
p:把存储单元的地址以16进制输出
%:可以输出%
标志说明
#:可以吧对应进制的前导符进行输出,#o输出八进制前导符0,#x输出16进制前导符0x
~:可以用于数据对齐,-表示左对齐,默认为右对齐
转换精度:.3指定输出位数,表示输出3位小数
长度修饰符
hh:指把整型转换为字符型输出,只针对输出内容,数据本身无影响
h(half-一半):把整型转换为短整型
大端存储与小端存储:小端-数据低字节存储在内存的低地址;大端-数据高字节存储在内存的低地址
缓冲区:全缓冲、无缓冲、行缓冲
全缓冲:缓冲区被填满,立即把数据冲刷到文件,或者在关闭文件,读取文件及修改缓冲区类型也会立即把数据冲刷到文件
无缓冲:指没有缓冲区,直接输出
行缓冲:当换冲区被填满(一般是4kB及4096字节)或者缓冲区遇到 ‘\n’,或者读取文件内容,修改缓冲区类型,会立即把数据冲刷到文件中,printf函数采用行缓冲
fflush()函数:用户可以调用库函数刷新输出缓冲区(主义不能刷新输入缓冲区,一般编译器不支持)——fflush(stdout); 可以刷新输出缓冲区
格式化输入:scanf(scan format)翻译为格式化扫描
scanf函数的第一个参数是字符串可以包含转换说明符%
scanf("%[0-9]s",str); 只接收0-9之间字符,输入其他数据则停止输入
scanf("%[^0-9]s",str); 不接收0-9之间字符,输入0-9字符停止输入
scanf("%[^#]s",str); 输入#表示停止输入数据
c语言的运算符:+、-、*、/、%、++、--;++,--属于单目运算符,其他5种属于双目运算符
/:除法运算符,当两端操作数都是整数时,输出也为整数且会直接舍弃小数保留整数(不会4舍5入):5/3=1,若有一个数为浮点数则输出为浮点数,默认6位数精度(小数点后保留6为小鼠),
%:取余运算符,两个操作数必须为整型,5%3=2
c语言中单目运算符和三目运算符,赋值运算符都是遵循右结合性,其它运算符遵循左结合性
++:a++,a先参与表达式运算,运算结束后a自增1;++a,a先自增1,在参与表达式运算
sizeof():此函数在c语言中是一个操作符,用于计算数据类型大小,结果以字节为单位,其括号里的表达式不会参与计算,当sizeof表达式中设计多个数据类型大小时,会进行隐世转换数据类型
自动类型转换:编译器默认转换,可能会影响数据精度,转换按照数据长度增加的方向进行,所有的浮点型都是以双精度运算的,运算中只有float类型时也需要先转换为double类型在运算,char与short参与运算时必须先转换成int类型
强制类型转换:(需要转换的数据类型) 变量——(int)a; 将变量a转换为整型
位操作运算符:~ & ^ | << >> (对二进制而言)
~:按位取反,对于二进制而言,0-1;1-0
&:按位与,有0为0,两个bit同时为1才为1
|:按位或,两个bit中有1,结果为1
^:按位异或,两个bit,相同为0,不同为1
<<:左移运算符,高位舍弃,低位补零——1111 0000 <<3——1110 0000
>>:右移运算符
a=0x0000 ?000
设置(置1)a的bit 3 = 1<<3 -> 0x 0000 1000 ->aI1 ->0000 1000——a | =(1<<x)->设置a的bit x;
清除(请0)a的bit 3 = 1<<3 -> 0x 0000 1000 ->~(1<<3) -> 0x1111 0111 --> a & ~(1<<3) --> 0x0000 0000,——>a &= ~(1<<x);
关系运算符:> < >= <= == !=
> < >= <= 这四种关系运算符优先级相同且高于 == !=,此两者优先级相同
逻辑运算符:&& || !
&&:逻辑与,当两个表达式为真,结果为真(当第一个表达式为假时结果为假,且后续表达式不在参与运算)
||:逻辑或,两个表达式有一个为真,结果为真,当第一个表达式为真后续表达式不在运算
!:逻辑非,单目运算符,真变为假,假变为真
条件运算符:?(唯一一个三目运算符)m ? x:y m表达式为真返回x,为假返回y
逗号运算符:(优先级最低) x,y,n; 取最后一个表达式n的结果
优先级:单目运算符 > 算数运算符 > 移位运算符 > 关系运算符 > 相等
相关文章:
嵌入式c学习四
c语言的输入输出:ANSI组织发布的标准c库,使用函数需要包含对应头文件,使用输入输出函数时需要包含stdio.h (stdio -> standard input output)标准输入输出 格式化输出:int printf(const char * restrict format, ...)…...
爱可以传递,幸福可以具象化
遇到什么:晚上上课学生吵吵吵,把学生手机全部收了,放讲台上。 感受到的情绪:很烦躁。 反思:收手机也不是长久之计,可是物理有什么翻转课堂呢? 明天的待办事项:早上高数选修课&#x…...
力扣-数组-367 有效的完全平方数
思路和时间复杂度 思路:利用二分,确定区间是左闭右闭,然后根据大小进行二分时间复杂度: 代码 class Solution { public:bool isPerfectSquare(int num) {bool flag false;if(num 0 || num 1) return true;long long …...
Java关键字与标识符
Java关键字是预定义的保留字,用于定义程序结构和语义,如if、for、class等,不能用作标识符。JDK 8有50个关键字,JDK 11引入var用于局部变量类型推断。标识符用于命名变量、类等,由字母、数字、_、$组成,不能…...
【神经网络】python实现神经网络(二)——正向推理的模拟演练
一.神经网络假设 在开始讲解之前,首先我们假设有这样一套神经网络,一共有三层: 其中,关于神经网络的权重、偏置的符号定义如下(如果不知道什么是权重和偏置,可以参考我之前写过的一篇文章:【机器学习】机器学习是什么意思): 以下文章将沿用以上这个设…...
DeepSeek模型本地化部署方案及Python实现
DeepSeek实在是太火了,虽然经过扩容和调整,但反应依旧不稳定,甚至小圆圈转半天最后却提示“服务器繁忙,请稍后再试。” 故此,本文通过讲解在本地部署 DeepSeek并配合python代码实现,让你零成本搭建自己的AI…...
Rust规律归纳随笔
1. 针对所有权规则: 唯一所有权 <------------> 智能指针(引用计数)<-------------->共享所有权 (引用计数) { 单线程:Rc 多线程:Arc } 2. 针对借用规则: 共享不可变(多读)<----->…...
Houdini SOP层 Scatter节点
SOP 代表 Surface Operator(几何体操作节点),所有几何体的建模、变形、分布等操作都在此层级完成。 Scatter节点的作用就是 以不同的密度在模型表面撒点 Scatter 节点属于 SOP(几何体)层级: 进入 Geometr…...
Win7 火狐浏览器 Mozilla Firefox 115.7.0esr下载地址(及Chrome、Supermium浏览器)
如题,官网下载地址: Mozilla Firefox 115.7.0esr 已经发布,感兴趣的朋友可去官方下载! https://ftp.mozilla.org/pub/firefox/releases/115.7.0esr/ 其他方案: 1、谷歌 Chrome 浏览器的 109版本,即最后一…...
Docker 学习笔记:从入门到部署,实战演练全流程!
📌 开篇:为什么要学 Docker? 还在为环境不一致、部署麻烦、依赖冲突头疼吗?Docker 让一切变得简单!作为现代开发和运维的神器,Docker 让我们可以用 一句命令 解决 “在我电脑上能跑” 的问题。今天&#x…...
【网络安全工程】任务12:网络安全设备
目录 一、防火墙 1、作用 2、配置方式 3、存在的漏洞 二、入侵检测系统(IDS)和入侵防御系统(IPS) 1、作用 2、配置方式 3、存在的漏洞 三、防病毒网关 1、作用 2、配置方式 3、存在的漏洞 …...
Linux 进程控制:创建、终止、等待与程序替换全解析
亲爱的读者朋友们😃,此文开启知识盛宴与思想碰撞🎉。 快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 目录 1.进程创建 1-1 fork函数初识 1-2 fork函数返回值 1-3…...
SwiftUI 让视图自适应高度的 6 种方法(四)
概览 在 SwiftUI 的世界里,我们无数次都梦想着视图可以自动根据布局上下文“因势而变”。大多数情况下,SwiftUI 会将每个视图尺寸处理的井井有条,不过在某些时候我们还是得亲力亲为。 如上图所示,无论顶部 TabView 容器里子视图…...
机器学习中的梯度下降是什么意思?
梯度下降(Gradient Descent)是机器学习中一种常用的优化算法,用于最小化损失函数(Loss Function)。通过迭代调整模型参数,梯度下降帮助模型逐步逼近最优解,从而提升模型的性能。 1.核心思想 梯…...
opencv-显示图片
安装软件 sudo apt install python3 //确保虚拟机只有python3 ln -sf /usr/bin/python3.6 /usr/bin/python sudo apt install python3-pip pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple pip install opencv-contrib-python -i https://pypi.tuna…...
sap关账+策略模式(避免大量if elseif)
旧代码 Transactional(rollbackFor Exception.class)public AjaxResult purchaseOrderReceiptOutSourceAfterSapCloseAccountingPeriod(Long id) {SysPurorderPostingLog sysPurorderPostingLog sysPurorderPostingLogMapper.selectSysPurorderPostingLogById(id);if (Object…...
EverArt MCP 服务器安装调试笔记 -cline
EverArt MCP 服务器安装调试笔记 问题描述 用户在使用 EverArt MCP 服务器时遇到报错:“MCP error -1: Connection closed”。 调试过程 检查配置文件 cline_mcp_settings.json: 确认 everart 服务器的配置信息,包括 command、args 和 env 是否正确。…...
1035.不相交的线
1035.不相交的线 力扣题目链接(opens new window) 在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足: nums1[i] nums2[j]且绘制的直线…...
Django-ORM-select_related
Django-ORM-select_related 作用使用场景示例无 select_related 的查询有 select_related 的查询 如何理解 "只发起一次查询,包含所有相关作者信息"1. select_related 的工作原理2. 具体示例解析3. 为什么只发起一次查询 数据库中的books量巨大࿰…...
2001-2023年上市公司数字化转型年报词频统计(年报词频统计和MDA词频统计两种方式)(吴非、赵宸宇、甄红线300+关键词三种方法)
2001-2023年上市公司数字化转型年报词频统计(年报词频统计和MD&A词频统计两种方式)(吴非、赵宸宇、甄红线300关键词三种方法) 1、时间:2001-2023年 2、来源:上市公司年报 3、参考文献: …...
IO多路复用实现并发服务器
一.select函数 select 的调用注意事项 在使用 select 函数时,需要注意以下几个关键点: 1. 参数的修改与拷贝 readfds 等参数是结果参数 : select 函数会直接修改传入的 fd_set(如 readfds、writefds 和 exceptfds…...
React 如何实现组件懒加载以及懒加载的底层机制
前言 在现代前端开发中,性能优化始终是一个核心课题。React 作为当下流行的前端库之一,提供了一些非常有用的工具和技术来提升应用的性能,其中懒加载(Lazy Loading)就是一项不可忽视的重要技术。通过懒加载࿰…...
《论语别裁》第01章 学而(22) 种瓜者
下面一节,等于一个结论: 曾子曰:慎终追远,民德归厚矣。 古人对于这一句的解释,我也有点意见。拿孝道来讲,过去讲中国文化的孝道,本来很重要,我们看历史上给皇帝的奏议,常…...
如何设置GET请求的参数?
在使用PHP爬虫时,设置GET请求的参数是与目标网站交互的关键步骤。通过正确设置GET请求的参数,可以向目标网站发送查询请求并获取相应的数据。以下是如何在PHP中设置GET请求参数的详细说明,包括使用cURL和GuzzleHttp库的示例。 一、使用cURL设…...
C++20 模块:告别头文件,迎接现代化的模块系统
文章目录 引言一、C20模块简介1.1 传统头文件的局限性1.2 模块的出现 二、模块的基本概念2.1 模块声明2.2 模块接口单元2.3 模块实现单元 三、模块的优势3.1 编译时间大幅减少3.2 更好的依赖管理3.3 命名空间隔离 四、如何使用C20模块4.1 编译器支持4.2 示例项目4.3 编译和运行…...
SpringBoot集成Swagger指南
在Spring Boot项目中集成Swagger可以帮助你自动生成API文档,并且提供一个交互式的UI界面,方便开发者测试和调试API。以下是集成Swagger的步骤: 1. 添加Swagger依赖 首先,在你的pom.xml文件中添加Swagger的依赖项。通常使用的是s…...
有必要使用 Oracle 向量数据库吗?
向量数据库最主要的特点是让传统的只能基于具体值/关键字的数据检索,进化到了可以直接基于语义的数据检索。这在AI时代至关重要! 回到标题问题:是否有必要使用 Oracle 向量数据库? 这实际还要取决于你的具体应用需求。 客观来讲…...
仅仅使用pytorch来手撕transformer架构(3):编码器模块和编码器类的实现和向前传播
仅仅使用pytorch来手撕transformer架构(2):编码器模块和编码器类的实现和向前传播 往期文章: 仅仅使用pytorch来手撕transformer架构(1):位置编码的类的实现和向前传播 最适合小白入门的Transformer介绍 仅仅使用pytorch来手撕transformer…...
rust语言match模式匹配涉及转移所有权Error Case
struct S{data:String, }//注意:因为String默认是移动语义,从而决定结构体S也是移动语义,可采用(1)或(2)两种方法解决编译错误;关键思路:放弃获取结构体S的字段data的所有权,改为借用。fn process(s_ref:&a…...
小肥柴慢慢手写数据结构(C篇)(4-3 关于栈和队列的讨论)
小肥柴慢慢学习数据结构笔记(C篇)(4-3 关于栈和队列的讨论) 目录1 双端栈/队列2 栈与队列的相互转化2-1 栈转化成队列2-2 队列转化成栈 3 经典工程案例3-1 生产者和消费者模型(再次重温环形缓冲区)3-2 MapR…...
