为什么编译器将此变量初始化为错误的值?这是对齐问题吗?

2023-12-30

我正在使用嵌入式 C 编译器(ARM cortex-m3 芯片),它似乎将错误的值初始化为结构。为什么会出现这种情况?如果是对齐问题,编译器不应该知道将 int32u 与 4 字节边界对齐吗?

注意:printf 只是将字节从串行端口中抛出。该芯片上没有 stdio.h 实现。

typedef struct
{
    int32u startTime; 
    int16u length;
    int32u offTime;
} Cycle;

Cycle cycle = 
{
    315618000, 
    1200,
    0
};


void init()
{
   printf("\r\nInitialized! Cycle Start: %d", cycle.startTime);

   cycle.startTime = 315618000;
   cycle.length = 1200;

   printf(" Cycle Start: %d", cycle.startTime);

}

输出: 已初始化!循环开始:631237200 循环开始:315618000

Note::这不是 printf 问题。调试器也会验证内存中的值是否为 631237200。


在某些嵌入式系统中,静态初始化并未设置为自动发生。这违背了 C 规范,但有时就是这样。请注意,这对于 data 和 bss 段可能都是如此,即您可能会发现未初始化的静态变量也可能不会初始化为零。

不幸的是,这个问题的解决方案是特定于系统的。您可能会在编译器系统文档中找到一些内容,可以让您调用静态元素的初始化。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么编译器将此变量初始化为错误的值?这是对齐问题吗? 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • EF Core Group By 翻译支持条件总和

    听说 EF Core 2 1 将支持翻译小组 我感到非常兴奋 我下载了预览版并开始测试它 但发现我在很多地方仍然没有得到翻译分组 在下面的代码片段中 对 TotalFlagCases 的查询将阻止翻译分组工作 无论如何 我可以重写这个以便我
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 如何在magento中获取特定页面的URL

    我想在 Magento 中获取页面的 URL 键 例如 我有一个名为 What s New 的 CMS 页面 其标识符 或 URL 键 为 whats new 因此它的正确 URL 是http mysite com whats new 目前
  • Gem 未安装,显示连接错误

    当我在创建新的 gemset 后尝试安装像捆绑器或 rake 这样的 gem 时 它没有安装 但如果我安装旧版本 它对我来说工作正常 这是安装gem时的错误日志 gem install rake Fetching rake 0 9 2 2
  • 如何使用 Nexus One 运行层次结构视图

    我正在尝试使用层次结构查看器在 Nexus One 上调试 Android 应用程序 我在桌面上启动层次结构视图 在 设备 下 我看到我的手机 但是当我单击 启动服务器 时 我看到 版本 2 协议 2 当我启动层次结构查看器时 终端上的 v
  • webpack 创建 CSS 组件范围

    我目前正在学习如何使用 webpack 并且在 CSS 文件方面遇到了一些困难 基本上 我使用 AngularJs 1 5 和 TypeScript 创建两个组件 它们每个都有一个模板 其中包含带有 button 类的 div 元素 每个组
  • onClick 使用 jQuery .animate 转到页面底部

    我有一个表 其中最后一列包含操作按钮 可在表下打开另一个部分 当该部分打开时 正文页面保留在按下操作列中的按钮的位置 我需要使用 jQuery 最好使用 animate 它将 html 页面滚动到表格下打开的部分 小提琴示例 http js
  • 如何在PHP中输出简单的ascii表?

    我有一些数据 例如 Array 0 gt Array a gt largeeeerrrrr b gt 0 c gt 47 d gt 0 1 gt Array a gt bla b gt 1 c gt 0 d gt 0 2 gt Array
  • 在 VB6 IDE 中工作时卸载 COM 控件

    我日常工作的一部分是维护和扩展遗留的 VB6 应用程序 通用引擎是用 C C 编写的 VB6 使用这些函数来提高性能 当谈到异步编程时 C 接口是不够的 我们依靠 COM 控件来向 VB6 触发事件 我的问题是 当我在 VB6 中注册该控件
  • 如何区分缺少的反序列化字段和空字段?

    我想用Serde https serde rs 将一些 JSON 解析为 HTTP PATCH 请求的一部分 由于 PATCH 请求不传递整个对象 仅传递要更新的相关数据 因此我需要能够区分未传递的值和显式设置为的值null 以及存在的值
  • 使用 Office 365 登录/凭据作为单点登录

    我可以使用 Office 365 登录 凭据作为单点登录吗 实际上 我需要使用 Office 365 登录详细信息登录我的 Web 应用程序 此外 我想在我的 Web 应用程序中使用以下 url 凭据进行单点登录 https portal
  • 通用相关类型可能寿命不够长

    采取以下示例 feature generic associated types allow incomplete features trait Produce type CustomError lt a gt fn produce lt a
  • 为什么 UINavigationBar 背景图像重复?

    图像尺寸为 640 X 44 适用于 iPad 肖像 由于某种原因 它显示为图案图像而不是拉伸的 iOS 6 尝试以下方法来拉伸图像 load the background image navbar png UIImage imageNav
  • Laravel 5.4,重命名用户表列

    所以今天我尝试修改我的 laravel 项目中的默认身份验证 首先 Composer 1 4 2 和 Laravel 5 4 27 也意味着所有依赖项 都是最新的 我用以下方法验证了这一点 composer self update comp
  • 专为 iOS7 设计的 Storyboard 在 4 英寸设备上的 iOS 6 上无法全屏显示

    我正在设计我的 iPhone 应用程序storyboard and auto layout 一切正常iOS 7在 4 英寸和 3 5 英寸设备上 On iOS 6 1该应用程序始终在 3 5 英寸设备上运行 即使在 4 英寸设备上运行 也会
  • kubernetes pod 内存 - java gc 日志

    在 kubernetes 仪表板上 有一个 pod 其中内存使用情况 字节 显示为904 38Mi 该 Pod 包含运行的 Java 应用程序 Xms512m Xmx1024m 以及 kubernetes 部署文件 gt requests
  • 动画 CALayer 背景颜色并更新模型值

    我想要制作动画backgroundColor更改我的 UIView 中的子层 在tintColorDidChange 我需要多次从图层的当前背景颜色到新的色调颜色进行动画处理 每次使用不同的色调颜色 因此背景颜色的模型值需要更新 我不能使用
  • 如何在兼容浏览器的 JavaScript 中撤消和重做事件?

    我有一个 T 恤定制设计软件工具 必须为可拖动的文本添加重做和撤消事件 http wordpress tshirtecommerce com design online product id 17 http wordpress tshirt
  • PDF 文本和坐标解析 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我目前正在使用 PDF Box 来解析 pdf 并试图弄清楚如何检索有关文本的数据 例如字体 粗体 大
  • 除非以管理员身份运行,否则 stack ghci 无法加载 pthread

    当我跑步时stack ghci在一个全新的项目上 它无法加载 stack new repro simple Downloading template simple to create project repro in repro 省略附加输
  • Spark 2.2.0 - 如何将 DataFrame 写入/读取 DynamoDB

    我希望我的 Spark 应用程序从 DynamoDB 读取表 执行操作 然后将结果写入 DynamoDB 将表读入 DataFrame 现在 我可以将表从 DynamoDB 读入 SparkhadoopRDD并将其转换为 DataFrame
  • 为什么编译器将此变量初始化为错误的值?这是对齐问题吗?

    我正在使用嵌入式 C 编译器 ARM cortex m3 芯片 它似乎将错误的值初始化为结构 为什么会出现这种情况 如果是对齐问题 编译器不应该知道将 int32u 与 4 字节边界对齐吗 注意 printf 只是将字节从串行端口中抛出 该