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 为结构体类型定义一个新名字一定要命名标签(作为规范约束自己)!!!
本文来自博客园,作者:大橙子疯,转载请注明原文链接:https://www.cnblogs.com/const-zpc/p/16364434.html