看啥推荐读物
专栏名称: 21ic电子网
即时传播最新电子科技信息,汇聚业界精英精彩视点。
今天看啥  ›  专栏  ›  21ic电子网

加个变量,程序崩了

21ic电子网  · 公众号  · 半导体  · 2024-01-22 20:21
前述大家在平常的编程过程应该会碰到各种奇葩的问题吧,反正我最近是碰到了一次,再此跟大家分享一下。事情的原因是我在程序中增加了一个变量,然后就会导致程序每次都会进入异常。示例代码我将代码简化了,使用两个模块来演示这个问题。第一个模块是Dev模块。下面是Dev模块的头文件,Dev结构体中有一个数组。#include #include typedef struct { int a_[100]; char b_;}Dev;void DevInit(Dev *c_this);下面是Dev模块的源文件代码,里面只有一个memset。#include "Dev.h"void DevInit(Dev *c_this) {   memset(c_this, 0, sizeof(Dev));}第二个模块是DevManager,相关数据结构如下:#include "Dev.h"#pragma pack(1)typedef struct { Dev uart_; char num_; // Adding this variable causes a crash Dev iic_;}DevManage;#pragma pack()DevManage dev_manage;void DevManagerInit(void) { DevManage *c_this = &dev_manage;  memset(c_this ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照