Keil 中unresolved external symbol的问题,求解???
发布网友
发布时间:2022-05-14 00:01
我来回答
共2个回答
热心网友
时间:2023-11-09 20:26
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
热心网友
时间:2023-11-09 20:26
在一个头文件里写
sbit rs= P3^3;
sbit rw = P3^4;
sbit en = P3^5;
然后所有cpp都包含它。
#include "mydef.h"追问这难道不会造成重复定义吗?若为重复定义,连接时应该会报错的吧