标题: 有关单片机C语言头文件 [打印本页]

作者: 腹黑的钢笔    时间: 2024-3-17 21:40
标题: 有关单片机C语言头文件
这几天又在一边抄着代码一边学。而头文件在很多时候是没有太多留意的。但这里我抄着的时候就出了点问题。比如这个帖子的基于51单片机篮球计分器12864显示仿真及源程序 - 51单片机 (51hei.com)
当我复制黏贴后...报错了。好吧还是得去看数据手册(在摸了在摸了)。
但有一个很明显得点,加了#include<reg51.h>后报错立马少了两个
12864.C(6): error C202: 'Count': undefined identifier
12864.C(7): error C202: 'Count': undefined identifier
12864.C(9): error C202: 'Count': undefined identifier
12864.C(10): error C202: 'Attack_Time': undefined identifier
12864.C(11): error C202: 'Time_sec': undefined identifier
12864.C(12): error C202: 'Attack_Time': undefined identifier

作者: 腹黑的钢笔    时间: 2024-3-17 21:41
12864.C(14): error C202: 'BF_flag': undefined identifier
而剩下的报错都是这些未定义。那么该怎么查需要调用的头文件?
很多时候只是抄,完全不清楚什么时候要调用什么头文件,
以及我这次该怎么处理,没什么头绪
(发帖时手滑了,主楼不小心发出去了)
作者: Hephaestus    时间: 2024-3-17 22:31
原贴代码不全,你自己定义就行了,比如unsigned char BF_flag;
作者: 腹黑的钢笔    时间: 2024-3-18 08:55
也不仅仅是这些啦...主要还是看着书发现有些头文件不怎么用,也不知道怎么弄之类的。比如这个absacc.h
                             至于原帖,应该就是开头开头要再来多几个#define之类的,然后再unsigned char 什么的。我再琢磨琢磨。
作者: 腹黑的钢笔    时间: 2024-3-18 10:00
再补充一下。可能又出错,如楼上所说我全部加了之后出现了大量报错。再根据我自己看书得情况,在启用lcd1602时开头时要用到#include"LCD1602.h"我是要加哪些啊(?

51hei图片_20240318085301.jpg (1.11 MB, 下载次数: 65)

51hei图片_20240318085301.jpg

51hei图片_20240318085256.jpg (1.06 MB, 下载次数: 74)

51hei图片_20240318085256.jpg

作者: devcang    时间: 2024-3-18 10:20
楼主应该得明白,这是基础的、C语言的知识范畴。
作者: 明日之星8    时间: 2024-3-18 10:59
反正是学习,没搞懂之前就不要一下子抄太多,从最少的代码
慢慢学,一句一句的,一行一行的搞明白代码的意思和作用。
除了芯片本身的头文件,其它的头文件都不是必须的,你可自己
写函数,等函数写多了,你可以把自己写的函数归纳到一个文件
中做成自己的头文件引用到代码中。
然后你就能看得懂别人的代码,如果发现有比自己写得好的代码
可一小段一小段的抄。别人的代码不一定全是好的,真正好的代
码很少有就这么放在网上给人抄的。
作者: Hephaestus    时间: 2024-3-18 15:55
示例代码不完整,LCD1602.h并非系统文件,而是自己写的,你显然没有这个文件。
作者: joyb    时间: 2024-3-18 16:04
undefined identifier 未定义标识符(编程术语)

作者: zhuls    时间: 2024-3-18 16:26
首要任务是:搞明白.H文件是怎么来的,和.C文件有什么关系...
搞明白之后,你的问题就不是问题了。

作者: 腹黑的钢笔    时间: 2024-3-18 17:59
emm,也就是说,.h文件是别人建的代码库。而我这里是没有的。因此在源代码中我需要自己重新写各种结构体来应用(因为这是别人的头文件里已经包含了的。)在以后觉得写的好的代码也可以自己建个库来用,在以后要用到的时候写个头文件就能直接应用了?是这个意思吧?我再摸摸
作者: wannenggong    时间: 2024-3-18 22:07
建议楼主翻看下书前面的内容,找找应该有“数据类型”的介绍,看看C语言编程的那些数据的书写格式、位数、值域这些,应该有一个表格可以查看,而后就会知道char、int、unsigned char、unsigned int----这些是咋回事了,如果你的书里没有可以百度了解下。
作者: 腹黑的钢笔    时间: 2024-3-19 08:42
wannenggong 发表于 2024-3-18 22:07
建议楼主翻看下书前面的内容,找找应该有“数据类型”的介绍,看看C语言编程的那些数据的书写格式、位数、 ...

单片机的书没标(可能是默认知道),而C/C++书里只标了char,int,float,double,    而void,enum,struct,union有提到,但书中几乎没怎么用过。我这书该不会买太久了?
作者: zuoshiwei    时间: 2024-3-19 10:31
实在找不到定义的范围,你可以自己前往去定义对应变量
作者: nxplpcexpresso    时间: 2024-3-20 10:25
变量调用前先定义,分全局,局部。要清楚的。
作者: LGQNM    时间: 2024-3-20 11:04
'Count':'Attack_Time_sec'这些变量没有定义啊




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1