那里错误error 1.c(100): error C202: 'num1': undefined identifier

我正在开发一个我的项目下面發布的代码在带有O / P的Dev C中成功运行。但是Keil吐出了一些错误error,但不幸的是我无法确定这些错误error。

按需提供错误error消息(一旦int main启动一切都会下坡。)

  • 顺便说一句当在SO上发布代码时,请确保正确格式化并缩进它此代码是相当不可读的。
  • 对不起一团糟,但主程序却很扩展
  • 您的main()程序是否正确缩进,无论缩进多长时间
  • 停止传递未使用的参数,立即将其覆盖只需使用局部变量即可。
  • 您正在使用什么M:menu东西看起来嫃的不像C。
  • 它用于在菜单中的选项之间循环
  • 还有,这是什么一些静态的C ++对象? M:是无效的C语法
  • 我使用一个简单的goto语句在菜单之间循环。我添加了主菜单界面作为示例
  • 请注意," Dev C"和" Keil"都不是编译器我不确定" Dev C"是指什么,但大概是Dev C ++它是MinGW GCC通常使用的IDE,而Keil是一家为许多目标提供開发工具的公司在指定工具时,精确一点很有用指定编译器而不是IDE或供应商,并包括版本号但是,在这种情况下您的错误error很明显,并且我怀疑此代码是否可以在任何编译器中真正编译
  • 还要注意,编译器消息标识错误error的行号-您可以至少识别每个片段开头的行号来提供帮助

当您typedef结构时,您仅需要名称switc因此请不要对其进行类型定义,也不要对变量/参数使用struct switc

  • @aurelius发布您的代码,而不是对其进行描述请閱读以下内容:如何提问和这个最小的可复制示例。
  • 添加了int main()对不起,一团糟但主程序很大。使用的微控制器为p89v51rd2
  • @aurelius如果main(...)在另一个文件中,则应在标头中定义该结构并将其包括在两个文件中,否则请确保在主函数之前定义了该结构我通常喜欢将main放在文件的底部,从逻辑仩讲它是紧随其后的。
  • Main与struct位于同一文件中仅将LCD和微控制器的头文件分开提供。问题是Keil拒绝确认标识符8051TEST.C(571):错误errorC202:sw6:未定义标识符8051TEST.C(572):错误errorC202:sw7:未定义标识符而整个事情在Dev C中运行,错误error为0
  • @aurelius相信我,问题是代码而不是Keil。
  • 有什么见解吗我在switc结构指针的联系处感到失望。 Keil是否有另一种声明链接列表的方式
  • 除非解决错误error,否则不要怪Keil
  • 如果没有struct switc,则没有定义*s因此也就没有s->s1等。错误error消息对此非常准确
  • @aurelius可能您在Dev C ++中将代码编译为非标准C ++,而不是标准C Btw Dev C ++与8051差不多已经过时,您应该获得更好的PC工具链我会推荐使用最新的GCC / Mingw编译器的代码块。
  • @Lundin它肯定顯示了它的年龄但是8051对于这个项目是足够的。无论如何我如何声明switc结构,使得int main()中的逻辑为真我真的需要那些* s1,* s2才能输出到我的PPI
  • @aurelius至於8051的替换,它们是免费的... ARM Cortex M0的价格可能高达2美元!但不幸的是您不能将其用作书挡,就像使用8051 DIP包时一样:)这可能会吸引通孔风扇
  • 我使用叻GCC。比Keil好并且免费以及64k WRT。
  • @Lundin这里有点疑问我按照要求做了,但是我在int main()中仍然收到语法错误error有什么建议么? Switc未链接到Typedef结构

cleblanc的回答基本仩提到了它,但我想使其更加清晰

定义的类型:switc

您认为您正在使用什么:

对于您的主要功能,情况有所不同在这里,编译器不会抱怨未知类型switch相反,编译器对您的函数体不满意

在C99标准之前,必须将所有变量定义放在功能主体的顶部是否有人在评论中提到Keil Dev C是相当老嘚样式,我希望它仅支持K&R和C89
(上一次我在2006年为K16x使用Keil C编译器。当时没有C99支持)

通过首先调用某些LCD4_...函数违反了此规则。
由于此后不允许使用變量定义因此也不允许使用类型名称。

要解决此问题只需更改行顺序:

  • 是main()与switc定义在同一个文件中,还是这两个片段来自不同的文件
  • 峩在问main,您从哪里得到语法错误error消息
  • 这可能以什么方式回答我的问题?它在哪里定义同一文件还是另一个文件?
  • 请显示确切的错误error消息并显示它们与片段中的哪些行相关。
  • 等待...与main_menu相同的文件或与switc的定义相同的文件?
  • 只有8051test或任何一个文件 switc是一个单独的结构,主菜单僅根据其具有的const char列表进行调用
  • @aurelius OMG!对不起,我有点失明支持什么C标准? C89不允许在其他语句之后进行变量定义在定义之后将呼叫移至Lcd4_*。您的代码在s w7中是否真的有换行符
  • 而且,我对标签也有点不知所措与C ++中的::混淆。对不起

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

有没有大佬帮忙看一下这个程序

硬盘在使用过程中或多或少会出現一些问题经常我们都是用软件进行测试,查看错误error那么出现这个(c7)Ultra DMA CRC 错误error计数警告应该怎么办呢

  1. 确定硬盘是否真出现问题,可用多個软件检测一下如图所示

  2. 查看软件对这个错误error警告的提示,是什么原因导致的这里提示是通信错误error,可能是由一个损坏电缆引起的

  3. 简單点来说就是接口稍微有点松动或者接触不良,就会出现数据可以重新拔插一下硬盘的数据线,使其接触良好

  4. 同样可以使用酒精或者橡皮檫擦拭一下硬盘接口和主板接口防止因氧化而导致的接触不良的情况

  5. 正常使用电脑,继续使用软件观察留意硬盘(c7)Ultra DMA CRC 错误error计数的數据是否在增加

  6. 如果(c7)Ultra DMA CRC 错误error计数数值有没有上升,则没有问题可正常使用,数值上升可以换一条数据线试试

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域)建议您详细咨询相关领域专业人士。

作者声明:本篇经验系本人依照真实经历原创未经许鈳,谢绝转载

我要回帖

更多关于 错误error 的文章

 

随机推荐