标题: 错误 C129: missing ';' before 'uint'"请大家帮忙看看,问题出在什么地方? [打印本页]

作者: hzjkyy    时间: 2020-3-23 20:40
标题: 错误 C129: missing ';' before 'uint'"请大家帮忙看看,问题出在什么地方?
初学C51编一个简单的哆声,就是通不过
//c调DO音频率为523  H           //
   //z   =1.912         m          s                   //
   //=0.956        ms  //

     #include <reg52.h>
         #include <intrins.h>
        sbit OUT = P3^1;
        define uint unsigned int  
        define uchar  unsigned char
        
  void Delay956us()                //@11.0592MHz
        {
                unsigned char i, j;
        
                _nop_();
                i = 11;
                j = 69;
                do
                {
                        while (--j);
                } while (--i);
        }         
        viod   main()
        {
           while ( 1)
        
                OUT =1        ;
                Delay956us        ;
                OUT =0        ;
                Delay956us ;
        }
uv3编译通不过,提示 "C_D0.C(8): 错误 C129: missing ';' before 'uint'"


作者: xxpp2011    时间: 2020-3-23 23:00
第8、9行错了
#define uchar unsigned char
#define uint unsigned int     

作者: csmyldl    时间: 2020-3-24 00:02
仔细看,程序中一个是void 一个是viod,总要改掉一个吧
作者: wo4fisher    时间: 2020-3-24 00:32
宏定义的正确使用,define关键字前需要加  “#”号

作者: 黎明初至    时间: 2020-3-24 08:52
#define uint unsigned int
#define uchar  unsigned char

#不能省略的。。
作者: HC6800-ES-V2.0    时间: 2020-3-24 09:11
我给你调正确了,自己看看,你错了些啥!!!!!
#include <reg52.h>
         #include <intrins.h>
        sbit OUT = P3^1;
        #define uint unsigned int  
        #define uchar  unsigned char
        
  void Delay956us()                //@11.0592MHz
        {
                unsigned char i, j;
        
                _nop_();
                i = 11;
                j = 69;
                do
                {
                        while (--j);
                } while (--i);
        }         
        void   main()
        {
           while ( 1)
          {
                OUT =1        ;
                Delay956us()        ;
                OUT =0        ;
                Delay956us() ;
          }
                }
作者: PDDDF    时间: 2020-3-24 09:18
define前面加个#试试
作者: 19857119144    时间: 2020-3-24 11:55
宏定义使用错误,正确写法如下:
#define uint unsigned int
#define uchar  unsigned char
后面不用加;
作者: cphnkj188    时间: 2020-3-24 12:54
语法错误;还有就是主函数类型输入错误。我想说既然前面宏定义了 uchar  为啥后面函数里还用unsigned char 宏定义的目的是为了输入简洁方便的,既然不用,宏定义就没有意义了 再一个就是你宏定义了uint 后面没用上编译时也可能有警告
作者: hzjkyy    时间: 2020-3-25 09:57
谢谢各位大神,HC6800-ES-V2.0大神的编译通过,经比较 我少了“#”,还有 Delay956us()少了(),改了后这个就能通过了。




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