Keil 中unresolved external symbol的问题,求解???

2024-11-16 02:49:34
推荐回答(2个)
回答1:

extern应该在主函数累声明不应该在主函数外声明,你要先在内部声明了才能在外不用,而你内部并没有声明所以这三个变量任然是局部变量。而在外部进行声明时自然就找不到main内的这三个变量,像这样修改试试(main内部):extern sbit rs= P3^3,rw = P3^4,sbit en = P3^5;并去掉外部的extern声明
其实我觉得直接把端口定义写在main函数外就行了,没必要这么麻烦,最好写在头文件里面。
重复定义的解决可以在头文件中加入标签定义,格式为:
#ifndef _portdef_
#define _portdef_
sbit rs= P3^3;
sbit rw = P3^4;
sbit en = P3^5;
#endif

回答2:

在一个头文件里写
sbit rs= P3^3;
sbit rw = P3^4;
sbit en = P3^5;

然后所有cpp都包含它。
#include "mydef.h"