首页 > 其他分享 >2024.4.15每日收获之变量赋初值

2024.4.15每日收获之变量赋初值

时间:2024-04-15 21:22:52浏览次数:25  
标签:2024.4 初值 unsigned Ramextern char flag name1 15

今天组长临下班前给了个新任务,让我去消除代码测评中的5D警告,5D指的是Procedure contain UR data flow anomalies,翻译过来就是存在UR(变量未赋初值就使用)数据流异常。这个警告其实是测评网址的问题,未赋初值,但是在单片机清ram时,已经对存放在ram中所有的全局变量清零了,只是没有在代码中写出来,就报了这个警告。
因此我只需要把所有用到的全局变量在main函数开头进行清零即可,遇到了之前写过的问题,定义与声明之间重定义问题(定义并赋初值只能一次,声明可以多次且不能赋初值),我们之前把常量全放在一个.h文件里,定义并声明为全局变量,对extern进行宏定义,只在main函数中定义,其它调用该头文件只进行声明。如下所示
main.c
#include<demo.h>
#define MAIN_C
Ramextern unsigned char flag=0; //这里等价于unsigned char flag=0;定义并赋初值0
demo.h
#ifdef MAIN_C
#define Ramextern
#else
#define Ramextern extern
Ramextern unsigned char flag; //这里等价于extern unsigned char flag;
demo.c
#include<demo.h>
Ramextern unsigned char **flag=0**; //这里会报错,声明不能赋值
今天还学到了如何对联合(union)类型的数据进行赋初值,不能直接等于0,需要加大括号{0};同时上网查阅资料了解到联合体和结构提的区别,联合体变量共用内存,更省空间;而结构体变量为独立内存
如:
union name
{
unsigned char a
unsigned int b
}name1
这里定义了一个联合体类型的数据name1,如果我对name1进行赋初值时,需要这样做,name1={0};此时的a=0,b=0(共用存储空间);首先对联合体数据的第一个变量赋初值;
typedef union
{
unsigned char a
unsigned int b
}name
name name1; //与上面的union等价
typedef是为现有的类型起一个别名,使使用起来更加的方便,注意一点,它并没有产生新的类型。

typedef int Beet
Beet a; //等价于int a;

标签:2024.4,初值,unsigned,Ramextern,char,flag,name1,15
From: https://www.cnblogs.com/xzaxs/p/18136929

相关文章

  • P3345 [ZJOI2015] 幻想乡战略游戏
    题意:傲娇少女幽香正在玩一个非常有趣的战略类游戏,本来这个游戏的地图其实还不算太大,幽香还能管得过来,但是不知道为什么现在的网游厂商把游戏的地图越做越大,以至于幽香一眼根本看不过来,更别说和别人打仗了。在打仗之前,幽香现在面临一个非常基本的管理问题需要解决。整个地图是一......
  • 15--Scrapy01:介绍与初步使用
    Scrapy01--基本介绍与初步使用一、爬虫工程化何为工程化,就是让你的程序更加的有体系,有逻辑,更加的模块化.到目前为止,我们所编写的爬虫我们都是从头到尾的每一步都要亲力亲为.这样做固然有其优点(可控性更好),但是各位请认真思考.这样的代码逻辑是不能形成批量生产的效果的(写10......
  • 2024-4-15 rpm与yum安装及管理程序 162004
    rpm与yum安装及管理程序目录rpm与yum安装及管理程序一、Linux应用程序基础1.1、应用程序与系统命令的关系1.2、典型应用程序的目录结构1.3、常见的软件包封装类型二、RPM包管理工具2.1一般命名格式2.2rpm命令的格式2.3安装卸载升级三.yum3.1基本格式3.2安装本地yum仓库四:编译......
  • 15、OSPF多区域邻接
    OSPF多区域邻接产生原因OSPF在区域内选路是最短路径优先,但当区域间路径最短时,还是会优选区域内路径。如果某个区域的某段路径是高速链路,按照OSPF协议要求,该链路所在接口只能属于一个区域,其他区域的路由无法同时使用此段高速链路进行传输,只能选择低速链路。目前通过配置多个子......
  • 云原生周刊:CNCF 2023 年度调查报告 | 2024.4.15
    开源项目推荐highlight该项目是一个开源全栈监控平台。其功能包括错误监控、会话重放、日志记录、分布式跟踪等。HelmComposeHelmCompose是一个helm插件,用于在单个配置文件中管理一个或多个图表的多个版本。HAMi异构AI计算虚拟化中间件(HAMi),是一个“一站式”图表,旨在......
  • 2024.4.15学习记录
    锚点链接<ahref="#Cat"></a>点击这个链接将为跳转到这个页面上id为Cat的页面利用这个功能,我们可以实现给一个页面插眼的功能。比如我们想建一个动物园的网站<!--动物园导航栏--><header><ul><li><ahref="cat">Cats</a></li><li><ahref="d......
  • 洛谷题单指南-数学基础问题-P1572 计算分数
    原题链接:https://www.luogu.com.cn/problem/P1572题意解读:计算分数+、-运算的结果。解题思路:根据题目要求,逐项计算并约分,则不会超int,问题就比较直接了定义a1/b1为前一项的分子分母,a2/b2为当前项的分子分母依次遍历字符串,处理出分子和分母,本题的关键其实是字符串的处理当读取......
  • 2024.4.15 学习数理结构“栈”后的四则运算
    使用栈的四则运算1.题目描述用顺序栈和算符优先法求解表达式的值2.任务定义和问题分析四则运算基本运要通过算法优先级和后缀表达式的思想完成,应当由以下功能:(1)可以先求解后缀表达式。然后再求值,也可以一并完成。(2)表达式中的运算为加、减、乘、除四种,包括括号,参与运算的数字为......
  • 函数式编程思想 VS 可变性理论 20240415
    函数式编程(FunctionalProgramming,FP)是一种编程范式,它将计算视为数学函数的求值,并避免使用程序状态以及易变对象。函数式编程的核心思想包括:不可变性(Immutability):在函数式编程中,数据是不变的。一旦创建了一个数据结构,就不能再改变它。所有的操作都会产生新的数据结构。纯......
  • 21/10/11 - 21/10/15 零碎知识记录
    1.pc端实现移动端拖动效果思路moveDown记录鼠标按下位置记录当前状态为按下拖动+moveUp记录当前状态为非拖动moseMove根据拖动状态,计算当前拖动距离判断左拖右拖边界值对元素进行移动修改鼠标按下位置,以便下次计算移动距离,不初始化会导致移动距离指数式增加,移......