单片机编程时出现undefined identifier是什么意思? 大哥们教教我吧!

如题所述

undefined identifier的翻译是,未定义的标识符。意思是在程序内使用了没有被定义的标识符或者变量。解决办法就是找到这个没有被定义的标识或者变量,进行定义。在编译的时候出现错误,会提示错误是什么和错误的位置,根据提示就可以找到。

扩展资料:

C语言中的标识符

1、标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线。例如,正确的标识符:abc,a1,prog_to。

2、不能把C语言关键字作为用户标识符,例如if,for,while等。

3、标识符长度是由机器上的编译系统决定的,一般的限制为8字符(注:8字符长度限制是C89标准,C99标准已经扩充长度,其实大部分工业标准都更长)。

4、标识符对大小写敏感,即严格区分大小写。一般对变量名用小写,符号常量命名用大写。

5、标识符命名应做到“见名知意”,例如,长度(length),求和、总计(sum),圆周率(pi)……

C语言中把标识符分为三类:关键字,预定义标识符,用户自定义标识符 。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-04

undefined identifier是未定义的标志符,在程序内使用了没有被定义的标志符或者变量。

具体解决办法:找到未定义的标志符,对其进行赋值即可。

定义的是unsigned char num,在使用的时候,写成了NUM,也会出现同样的错误p1,undefined identifier:英文意思就是p1未定义,找不到p1编译出错。

扩展资料:

C语言单片机编程:

单片机软件设计使用C语言作为编程开发软件,采用模块化的程序结构。

设计了按键模块程序、RFID模块程序、日历时钟模块程序、GPRS模块程序、显示存储模块程序等,并编写系统主程序,将五个程序模块组合在一起,实现单片机控制系统的整体功能。

51单片机支持三种高级语言,即PL/M,C和BASIC。C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用的程序设计,是使用较广的单片机编程语言

单片机的C语言采用C51编译器(简称C51)。有C51产生的目标代码短,运行速度高,所需存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言或PL/M51语言目标代码混合使用 。

参考资料来源:百度百科-单片机C语言编程

参考资料来源:百度百科-单片机编程器

本回答被网友采纳
第2个回答  2019-12-20

undefined identifier是未定义的标志符,在程序内使用了没有被定义的标志符或者变量,是常见的keil编译错误,引发这一错误的原因是你使用的变量没有被定义。

解决办法是找到这个没有被定义的标志或者变量进行定义。

另外一种常见的错误就是大小写导致的,如你定义的是unsigned char num,在使用的时候,写成了NUM,也会出现同样的错误。

扩展资料:

单片机编程是基于C语言的单片机编程,C语言中出现的指令意思:

short:修饰int,短整型数据,可省略被修饰的int。(K&R时期引入)

long:修饰int,长整型数据,可省略被修饰的int。(K&R时期引入)

unsigned:修饰整型数据,无符号数据类型。(K&R时期引入)

restrict:用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式。(C99标准新增)

struct:结构体声明。(K&R时期引入)

inline:内联函数用于取代宏定义,会在任何调用它的地方展开。(C99标准新增)

auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配。与static相反。当变量未指定时默认为auto。(K&R时期引入)

static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部。(K&R时期引入)

register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数。(K&R时期引入)

extern:指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。(K&R时期引入)

本回答被网友采纳
第3个回答  2020-01-24

小写的p2改成大写P2。

p1,undefined identifier:英文意思就是p1未定义,找不到p1编译出错,P1是单片机的端口在reg52.h头文件里面,这个都是调用头文件惹的祸,因为头文件不是自己写的,所以调用很容易出错,如果用汇编就不会调用头文件。

#include <reg52.h>

sbit k1=P3^2;

sbit k2=P3^3;

sbit k3=P3^4;

sbit k4=P3^5;

sbit led1=P2^0;

sbit led2=P2^1;

sbit led3=P2^2;

sbit led4=P2^3;

void main()

{led1=1;led2=1;led3=1;led4=1;

while(1)

{

if(k1==0)

{

delayms(5);

if(k1==0)

{led1=0;led2=1;led3=1;led4=1;}}

if(k2==0)

{

delayms(5);

if(k2==0)

{led1=1;led2=0;led3=1;led4=1;}}

//依次写K3,K4D的即可

}

}

扩展资料:

单片机编程器的核心部件是单片机。单片机是指一个集成在一块芯片上的完整计算机系统,它拥有CPU、内存、内部和外部总线系统,大部分还会具有外存。

同时集成诸如通讯接口、定时器,实时时钟等外围设备。而最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。而单机片编程器利用的就是单机片这一重要原理部件。

参考资料来源:百度百科-单片机编程器

本回答被网友采纳
第4个回答  推荐于2017-11-24
这是因为你后面用了前面没定义的问题 因该是这样 希望采纳本回答被提问者采纳
相似回答