C语言项目开发优秀格式学习

1. C语言项目开发优秀格式学习

#define BUILD_MASK32(mask, offset, width) mask|=((0xffffffff)>>(32-width)) << offset
#define BUILD_VAL32(newval,offset,val) newval |= (val << offset)
#define GET_FILED_IN_VAL32(filed,offset,width,val) filed=(val<<(32-(offset+width))) >> (32-width)
#define BUILD_MASK8(mask, offset, width) mask|=((0xff)>>(8-width)) << offset
#define BUILD_VAL8(newval,offset,val) newval |= (val << offset)
#define GET_FILED_IN_VAL8(filed,offset,width,val) filed=(val<<(8-(offset+width))) >> (8-width)

regRead32(uint8 id, uint16 addr, uint32 *pVal);
regWrite32(uint8 id, uint16addr, uint32 mask, uint32 val);regWrite32(uint8 id, uint16addr, uint32 mask, uint32 val)
{uint32 tmpVal;uint32 wVal = val;regRead32(id, addr, &tmpVal);tmpVal &= ~mask;wVal &= mask;tmpVal |= wVal;}

C 语言开发中可以经常给你对函数的入参做检查:

ASSERT(expr)

#define ASSERT(expr) \if(!(expr))    \{              \log("%s:%d, assert(%s)", __FUNCTION__, __LINE__, #expr); \return; \}#define ASSERT_VOID(expr)if(!(expr))    \{              \log("%s:%d, assert(%s)", __FUNCTION__, __LINE__, #expr); \}#define ASSERT_RETURN_FAIL(expr)if(!(expr))    \{              \log("%s:%d, assert(%s)", __FUNCTION__, __LINE__, #expr); \return -1; \}#define ASSERT_RETURN_WARNING(expr)if(!(expr))    \{              \log("%s:%d, assert(%s)", __FUNCTION__, __LINE__, #expr); \return -1; \}#define ASSERTRtn(expr, result)if(!(expr))    \{              \log("%s:%d, assert(%s), result=%d", __FUNCTION__, __LINE__, #expr, result); \return result; \}

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

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

相关文章

git 删除 git push 失败的记录

文章目录 问题分析 问题 git push 失败后如何清理 commit 提交的内容 当我们 git push 失败后&#xff0c;如果下次有新的改动需要push时&#xff0c;会出现如下报错 分析 找到需要回退的那次commit的 哈希值 git log然后就回退到了指定版本&#xff0c;这个时候再把新修改…

解析rss链接数据,来长期把某博客数据订阅到自己的网站

目的 当我们打开这个订阅链接&#xff0c;会看到我们的文章信息以xml的形式呈现到浏览器页面中&#xff0c;怎么直接在我们自己的网站中&#xff0c;将这个链接的数据转为我们熟悉的json数据&#xff0c;然后渲染到自己的网站中呢 技术栈 react hookstypescriptwebpack 核心…

【C++掌中宝】深入理解函数重载:概念、规则与应用

文章目录 引言1. 什么是函数重载&#xff1f;2. 为什么需要函数重载&#xff1f;3. 编译器如何解决命名冲突&#xff1f;4. 为什么返回类型不参与重载&#xff1f;5. 重载函数的调用匹配规则6. 编译器如何解析重载函数的调用&#xff1f;7. 重载的限制与注意事项8. 总结结语 引…

柯桥小语种学习之语言交流 | 德语餐厅用语

01 一、入座与点餐 1. Guten Tag! Ein Tisch fr zwei Personen, bitte.&#xff08;你好&#xff01;请给我们一张两人桌。&#xff09; 2. Knnen wir hier sitzen?&#xff08;我们可以坐这里吗&#xff1f;&#xff09; 3. Die Speisekarte, bitte.&#xff08;请给我菜…

在Windows系统上安装的 zlib C++ 库

在Windows系统上安装的 zstd C 库 项目地址步骤步骤一步骤二步骤三如果生成过程中遇到如下错误: 效果 项目地址 https://github.com/madler/zlib 可以发现这个项目有CMakeLists.txt文件,那就比较好搞了 步骤 步骤一 git clone gitgithub.com:madler/zlib.git步骤二 cd zli…

丢失照片/消息/文件,当发现没有备份 Android 手机数据时急救方法

当人们发现他们没有备份 Android 手机数据时&#xff0c;通常为时已晚。但是&#xff0c;我们都不想永久丢失珍贵的照片&#xff0c; 消息和其他文件。这就是为什么您应该检查 遵循 5 大免费 Android 数据恢复工具和最佳替代品 他们。 排名前五的免费 Android 数据恢复软件 1.奇…

黑芝麻A1000-Ubuntu20.04(九)yolov5从训练到板端运行过程详解

宿主机&#xff1a;台式电脑 Ubuntu20.04 开发板&#xff1a;A1000&#xff08;烧录版本SDK v2.3.1.2&#xff09; 模型转换容器&#xff1a;bsnn-tools-container-stk-4.2.0 编译容器&#xff1a;a1000b-sdk-fad-2.3.1.2 yolov5使用工程&#xff1a;黑芝麻根据https://github.…

PHP探索校园新生态校园帮小程序系统小程序源码

探索校园新生态 —— 校园帮小程序系统&#xff0c;让生活更精彩&#xff01; &#x1f331;【开篇&#xff1a;走进未来校园&#xff0c;遇见新生态】&#x1f331; 你是否厌倦了传统校园的繁琐与单调&#xff1f;是否渴望在校园里也能享受到便捷、智能的生活体验&#xff1…

3d可视化图片:通过原图和深度图实现

1、depthy 在线体验demo: https://depthy.stamina.pl/#/ 也可以docker安装上面服务: docker run --rm -t -i -p 9000:9000 ndahlquist/depthy http://localhost:90001)首先传原图 2)再传对应深度图 3)效果 </ifra

网络事件管理

网络事件管理是运行组织 IT 网络不可或缺的一部分&#xff0c;网络事件管理的最终目标很简单&#xff1a;在发生中断时尽快恢复服务或功能。但是为了高效和一致地进行&#xff0c;IT 运营团队需要时刻保持警惕&#xff0c;不断了解网络事件&#xff0c;并且必须系统地遵循一套程…

opencv4.5.5 GPU版本编译

一、安装环境 1、opencv4.5.5 下载地址&#xff1a;https://github.com/opencv/opencv/archive/refs/tags/4.5.5.ziphttps://gitee.com/mirrors/opencv/tree/4.5.0 2、opencv-contrib4.5.5 下载地址&#xff1a;https://github.com/opencv/opencv_contrib/archive/refs/tags/4…

ToB项目身份认证AD集成(二):一分钟搞定window server 2003部署AD域服务并支持ssl加密(多图保姆教程+证书脚本)

在ToB的应用开发中&#xff0c;往往需要集成AD域控实现身份认证&#xff0c;同时也算是近期工作的总结&#xff0c;之前已介绍了基础的AD、Ldap&#xff0c;本文主要介绍如何大家一个本地的测试环境。 相关系列&#xff1a; ToB项目身份认证AD集成&#xff08;一&#xff09;&a…

【JavaSE】-- 类和对象(1)

文章目录 1. 面向对象的初步认知1.1 什么是面向对象1.2 面向对象与面向过程 2. 类的定义和使用2.1 简单认识类2.2 类的定义格式 3. 类的实例化3.1 什么是实例化3.2 类和对象的说明 4. this引用4.1 为什么要有this引用4.2 什么是this引用4.3 this引用的特性 5. 对象的构造及初始…

增强GPT4v的Grounding能力,video-level

开源链接&#xff1a; appletea233/AL-Ref-SAM2: AL-Ref-SAM 2: Unleashing the Temporal-Spatial Reasoning Capacity of GPT for Training-Free Audio and Language Referenced Video Object Segmentation (github.com) In this project, we propose an Audio-Language-Refe…

Spring Boot中实现一个递归获取省市区行政区划代码

Spring Boot中实现一个递归获取省市区行政区划代码 写于20240924 10:23 在Spring Boot中实现一个递归获取省市区行政区划代码的功能&#xff0c;可以按照以下步骤进行。我们将使用Spring Data JPA来与数据库交互&#xff0c;并构建一个递归的方法来获取层级数据。 首先这里数据…

11周年 | 初心不改,焕新前行,奔赴下一个10年!

2024年8月13日&#xff0c;爱加密正式迎来了11岁生日&#xff0c;在爱加密肩负着崇高使命踏浪而行的10年间&#xff0c;蓝绿色的品牌标识一直伴于左右。随着时代的变迁以及市场需求的不断变化&#xff0c;企业同样也需要在品牌上做出创新递进&#xff0c;从而更加适应市场竞争的…

数据科学的秘密武器:defaultdict——Python字典的自动化填充神器,让数据结构更灵活

目录 什么是defaultdict 引入动机 创建与初始化 工作原理 自定义默认值函数 注意事项 使用案例 使用场景 1: 计数 使用场景 2: 分组数据 使用场景 3: 嵌套字典结构 进阶案例使用 进阶案例 1: 使用 defaultdict 实现词频统计并排序 进阶案例 2: 使用 defaultdict 实…

OpenCSG推出StarShip SecScan:AI驱动的软件安全革新

OpenCSG 导读 如今&#xff0c;IT 技术迅速发展&#xff0c;软件安全不仅是企业稳健运营的基础&#xff0c;更是整个社会经济体系安全的保障。加强软件安全&#xff0c;尤其是在开发阶段识别和修补漏洞&#xff0c;是企业必须重视的问题。国际数据公司&#xff08;IDC&#xf…

MyBatis 入门教程-搭建入门工程

Maven作为一个优秀的项目构建和管理工具,在日常的开发中被大多数开发者使用,后续的项目也是基于Maven来构建。 创建一个Maven项目 利用IDEA创建项目工具来创建一个Maven项目 添加MyBatis的依赖 这里可以从Maven仓库地址中进行查看, https://mvnrepository.com/ 从这里可…

反汇编—switch

x64和x86分析类似 标号1的位置要计算出&#xff1a;减去(debug) / 加上(release)第一个case要等于0&#xff0c;因为第一个case在跳转表数组的0下标位置 通过1和2&#xff0c;可以知道它们应该是连续case&#xff0c;还要判断是否缺项&#xff0c;进入跳转表看 可以看到原本应…