Proteus仿真出现“Internal Exception: access violation in module ‘LOADERS.DLL‘ [00020627].”错误

Proteus仿真问题

 

在使用 Proteus 8.4 进行仿真时, 出现错误提示 Internal Exception: access violation in module 'LOADERS.DLL' [00020627].

 

 

在写软件进行仿真时,前一刻还能正常运行,后一刻整理了代码后仿真立马出现了该错误,但是编译又是没有任何问题,排查了很久,原来是因为定义了一个结构体时导致的。

struct tag { 
    member-list
    member-list 
    member-list  
    ...
};

struct tag test;

上述代码如何定义一个结构体和使用一个结构体类型定义变量,因为每次需要多敲一个 struct,所以通常我都会采用下面的写法,采用关键词 typedef 为结构体类型定义一个新名字,之后直接使用 test_t 定义变量就行了。

typedef struct
{
    char a;
    int  b;
}test_t;

test_t test;

通常采用上面的方式是没有什么发问题的,因为我一直这么用,直到最近重新使用 proteus 做一些仿真测试,保持以前的习惯,采用了上述定义,导致仿真时报错 “ Internal Exception: access violation in module 'LOADERS.DLL' [00020627]

原因就出现在这个 typedef 的使用上,必须写上标签名字,如 tag_test;重新编译后就可以正常仿真了。。。(PS:typedef unsigned char uint8_t;  这种定义没问题)

typedef struct tag_test
{
    char a;
    int  b;
}test_t;

test_t test;

以后养成习惯,定义结构体时,采用关键词 typedef 为结构体类型定义一个新名字一定要命名标签(作为规范约束自己)!!!

 

 

 

 

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大橙子疯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值