为什么在程序前面加上头文件:#include <AT89X52.h>
#include<reg52.h>
然后用sbit指令定义:
sbit PA0= P0^0;
sbit PA1= P0^1;
就报错呢?
error c231:'P0':redefinition
删掉#include <AT89X52.h>这个头文件就好了。
#include <AT89X52.h>这个头文件的作用是什么?我看有的程序上加上这个了,有的就没加,我用的单片机是at89s52,所以我就加上了,结果编译出了一堆错误。
它和#include<reg52.h>有什么区别?用哪个好点?
没问51,看清楚再回答!这两个都是52
追答哦sorry,AT89X52是ATMEL专用头文件,定义的东东较多,REG52只定义了一些基本的寄存器和引脚。
追问这两个头文件是不是相互冲突?只能加一个?我每次把这两个放在一起时都会报错。
追答不是因为冲突,而是因为重复定义造成的错误,你用AT89X52就可以了,REG52的定义前者里面都有。
本回答被提问者和网友采纳