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

#86_【无标题】每次 .h 被 #include,就等于在所有包含它的 .c 文件中都复制了一份定义。

我在.h中定义了/CN:数码管段码表 (扫描引脚复用型)-- EN:Digital Tube Segment Code Table (Scan Pin Multiplexing Type)/const uint8_t NUM_TAB[10] {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};但是这个时候突然间报错了所以感觉有意思错误原因Error LNK:(1044) Symbol _NUM_TAB redefined.你的NUM_TAB被两个地方定义T188.h第 37 行constuint8_tNUM_TAB[10]{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};很可能在之前某个版本的Charge.c或其他文件中也有NUM_TAB的定义。虽然你当前提供的Charge.c我没看到但根据对话历史早期版本Charge.c中有constuint8_tNUM_TAB[10]{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};链接器看到两个.o文件里都有NUM_TAB就报重复定义了。修复方法在T188.h中把constuint8_tNUM_TAB[10]{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};改为声明加extern去掉初始化和长度externconstuint8_tNUM_TAB[10];然后在T188.c全局变量区加上定义constuint8_tNUM_TAB[10]{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};为什么.h中定义不行每次.h被#include就等于在所有包含它的.c文件中都复制了一份定义。链接时多个.o都有同一个变量/常量就冲突了。规则.h中只能放声明extern.c中放定义带初始化另外g_Time_Tick还有问题你现在的T188.h第 31 行bit g_Time_Tick;没有extern这样还是定义不是声明。仍然会导致被多个.c包含时重复定义。必须改成externbit g_Time_Tick;然后在T188.c全局变量区加上bit g_Time_Tick0;汇总修改文件行修改前修改后T188.h31bit g_Time_Tick;extern bit g_Time_Tick;T188.h37const uint8_t NUM_TAB[10] {...};extern const uint8_t NUM_TAB[10];T188.c全局变量区无加上bit g_Time_Tick 0;和const uint8_t NUM_TAB[10] {...};这样就能彻底解决重复定义的问题了。

相关文章:

#86_【无标题】每次 .h 被 #include,就等于在所有包含它的 .c 文件中都复制了一份定义。

我在.h中定义了/CN:数码管段码表 (扫描引脚复用型)-- EN:Digital Tube Segment Code Table (Scan Pin Multiplexing Type)/ const uint8_t NUM_TAB[10] {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; 但是这个时候突然间报错了所以感觉有意思 错误原因 Err…...

CANN/catlass分组矩阵乘反量化示例

GroupedMatmulSliceMPerTensorPerChannelDequant Example Readme 【免费下载链接】catlass 本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。 项目地址: https://gitcode.com/cann/catlass 代码组织 ├── 48_ascend950_group…...

#85_库函数开发

前言 在很久很久很久以前 C 语言和 STM32 走在一条幽静的道路上 他们在一起过上了幸福的生活 一、 问题引入… 1 二、 寄存器的基础概念… 1 三、 STM32 寄存器实例解析… 3 GPIO 输入/输出 → 对应 GPIOx_CRL / GPIOx_CRH / GPIOx_IDR /… 3定时器(Timer&#xff…...

5个简单步骤:OpenCore Legacy Patcher终极指南让老旧Mac焕发新生

5个简单步骤:OpenCore Legacy Patcher终极指南让老旧Mac焕发新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否还在为老旧的Mac无法升级到…...

Lobu多租户AI助手网关:安全隔离与规模化部署实践

1. 项目概述:构建企业级多租户AI助手网关 最近在折腾一个挺有意思的开源项目,叫Lobu。简单来说,它解决了一个很实际的问题:如何安全、高效地在一个组织内部署和管理多个独立的AI助手(Agent)。想象一下&…...

Koel下载功能终极指南:批量下载与压缩包生成的完整教程

Koel下载功能终极指南:批量下载与压缩包生成的完整教程 【免费下载链接】koel Music streaming solution that works. 项目地址: https://gitcode.com/gh_mirrors/ko/koel Koel作为一款优秀的个人音乐流媒体解决方案,其强大的下载功能让用户可以轻…...

如何快速掌握加密算法基础:面向初学者的完整指南

如何快速掌握加密算法基础:面向初学者的完整指南 【免费下载链接】Algorithms A collection of algorithms and data structures 项目地址: https://gitcode.com/gh_mirrors/algorithms39/Algorithms 想要快速掌握加密算法基础吗?加密算法是现代计…...

基于MPA的微前端架构:实现技术栈无关与独立部署的现代Web应用方案

1. 项目概述:一个为现代Web应用量身定制的微前端架构如果你正在为一个大型、多团队协作的Web应用寻找一个既能保持技术栈灵活性,又能实现高效集成与独立部署的解决方案,那么mattmezza/mpa这个项目绝对值得你花时间深入研究。它不是一个简单的…...

为什么你需要HolyTips:7个让漏洞赏金狩猎更高效的实用技巧

为什么你需要HolyTips:7个让漏洞赏金狩猎更高效的实用技巧 【免费下载链接】HolyTips A Collection of Notes, Checklists, Writeups on Bug Bounty Hunting and Web Application Security. 项目地址: https://gitcode.com/gh_mirrors/ho/HolyTips 在网络安全…...

深度学习在人工耳蜗中的应用:从语音增强到医学影像分析

1. 项目概述:当深度学习“听见”声音作为一名长期在医疗科技与信号处理交叉领域摸爬滚打的从业者,我见证过太多技术从实验室走向临床的艰难旅程。其中,“深度学习在人工耳蜗应用中的进展”这个话题,尤其让我感到兴奋。它远不止是一…...

CANN基础设施漏洞管理指南

cve-manager(漏洞管理)使用说明 【免费下载链接】infrastructure 本仓库用于托管CANN社区基础设施团队的公开信息,包括不限于:会议日程,成员信息,服务文档和配置等信息 项目地址: https://gitcode.com/ca…...

JAVA基础教学计划【欢迎指点】

学习JAVA,首先要了解Java语言的第一个特性——面向对象。编程语言就像我们现实生活中面对种种情景是一样的,可以说这是属于计算机的世界,我们人来到计算机世界自然要熟悉这个世界构成方式。在现实中,我们认识一件事物,…...

收藏!2026年普通人也能干的5个高薪AI新职业(无需代码,小白也能学)

文章介绍了5个无需编程技能的AI相关职业:AI训练师、AI内容运营、提示词工程师、AI数据标注员和AI销售顾问。这些职业为没有高学历或技术背景的人提供了进入AI行业的机会,强调了学习AI工具和技能的重要性,鼓励人们抓住AI时代的机遇。 2026年&a…...

CANN/ge添加输出API

AddOutput 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端…...

AI赋能边缘计算安全:从联邦学习到异常检测的实战指南

1. 项目概述:当边缘计算遇上AI,安全与隐私的十字路口最近几年,我身边做物联网、车联网和工业互联网项目的朋友,聊得最多的两个词,一个是“边缘计算”,另一个就是“AI”。把AI模型部署到摄像头、网关、工控机…...

AI思维:跨学科协作与负责任AI实践的核心方法论

1. 项目概述:为什么我们需要“AI思维”?如果你最近在尝试将人工智能技术引入你的工作流程,无论是分析市场数据、优化客户服务,,还是辅助科研实验,你很可能已经感受到了某种“割裂感”。工程师团队在讨论模型…...

AI for Science技术路线图:从量子尺度到连续介质的跨学科实践指南

1. 项目概述与核心价值如果你是一位物理化学背景的研究生,正试图用机器学习预测新催化剂的活性,却发现网上资料要么是纯AI教程,要么是深奥的量子化学专著,中间仿佛隔着一道鸿沟——那么,你找对地方了。这就是“AI for …...

在 Taotoken 控制台中如何进行 API Key 的权限管理与审计日志查看

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在 Taotoken 控制台中如何进行 API Key 的权限管理与审计日志查看 对于团队管理员或项目负责人而言,有效管理 API Key …...

量子机器学习新范式:Classiq如何简化QML模型开发

量子机器学习新范式:Classiq如何简化QML模型开发 【免费下载链接】classiq-models The Classiq Library is the largest collection of quantum algorithms and applications. It is the best way to explore quantum computing software. We welcome community con…...

Linux Mem -- 通过reserved-memory缩减内存

目录 1. reserved-memory缩减内存 2. 为什么要通过2段512MB预留内存实现该缩减呢? 3. reserved-momery中的no-map属性 4. 预留的的内存是否会被统计到系统MemTotal中? 本文是解决具体的一些思考总结,和Linux内核的reserved-memory机制相关。 参考代码:Linux-6.10 1. re…...

如何理解KityMinder脑图编辑器的模块化命令系统设计原理 [特殊字符]

如何理解KityMinder脑图编辑器的模块化命令系统设计原理 🧠 【免费下载链接】kityminder 百度脑图 项目地址: https://gitcode.com/gh_mirrors/ki/kityminder KityMinder是一款由百度FEX团队开发的在线脑图编辑工具,它基于SVG技术实现&#xff0c…...

Front-End-Performance-Checklist错误处理终极指南:10个关键性能监控与异常捕获技巧

Front-End-Performance-Checklist错误处理终极指南:10个关键性能监控与异常捕获技巧 【免费下载链接】Front-End-Performance-Checklist 🎮 The only Front-End Performance Checklist that runs faster than the others 项目地址: https://gitcode.co…...

基于LAMP环境的校园论坛项目

目录 1.配置本地仓库: (1)修改主机名为自己姓名全拼 (2)在 /etc/yum.repo.d/ 目录下新建一个仓库文件yum.repo并编写文件内容 (3)光盘挂载到 /mnt 目录下。 (4)验证是否挂载成功。 2.关闭防火墙和SELinux服务 3.安装PHP环境 分别安装php、php-fpm 、php-mysqln…...

mac 安装指定node版本

我这里使用的是nvm(Node Version Manager)nvm(Node Version Manager)是一个允许你在同一台机器上安装和管理多个Node.js版本的工具。1.安装nvm打开终端,然后运行以下命令来安装nvm:bash:curl -o- https://r…...

1-论面向对象的建模及应用

软件系统建模是软件开发中的重要环节,通过构建软件系统模型可以帮助系统开发人员理解系统,抽取业务过程和管理系统的复杂性,也可以方便各类人员之间的交流。软件系统建模是在系统需求分析和系统实现之间架起的一座桥梁,系统开发人员按照软件系统模型开发出符合设计目标的软…...

Unix架构详细介绍

Unix 是一种具有高度模块化和可扩展性的操作系统,其架构设计使其在多用户和多任务环境中表现出色。以下是 Unix 架构的详细介绍,包括其主要组成部分和功能。Unix 架构的组成部分Unix 的架构通常可以分为以下几个主要部分:内核(Ker…...

nmBot Skills技能仓库解析:AI智能体与Telegram群管机器人的标准化桥梁

1. 项目概述:nmBot Skills 技能仓库深度解析如果你正在开发或使用基于大型语言模型的智能体,并且恰好需要一个功能强大的Telegram群组管理机器人,那么你很可能已经听说过nmBot。今天我们不聊nmBot本身,而是聚焦于一个能极大增强其…...

ARM芯片架构之APB,ATB总线

CoreSight SoC-400 APB Interconnect Components 与 ATB Interconnect Components 技术详解(整理版)1. APB Interconnect Components 1.1 概述 CoreSight 调试基础设施通过 AMBA APB3 协议提供对各调试单元寄存器的统一访问。 APB 互连组件负责&#xff…...

CubiFS容器存储备份与恢复:终极完整指南

CubiFS容器存储备份与恢复:终极完整指南 【免费下载链接】cubefs cloud-native distributed storage 项目地址: https://gitcode.com/gh_mirrors/cu/cubefs 在云原生时代,数据安全性和可靠性是企业级存储系统的生命线。CubiFS容器存储备份与恢复机…...

从零开始一天内完成多个AI模型服务对接的Taotoken效率记录

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 从零开始一天内完成多个AI模型服务对接的Taotoken效率记录 在开发一个需要集成多种AI能力的产品原型时,开发者常常面临…...