标题: 为什么Keil编译器会认为我要写汇编代码? [打印本页]

作者: Humorize    时间: 2019-2-2 21:27
标题: 为什么Keil编译器会认为我要写汇编代码?
用的IDE是Keil μVision V5.26.2.0,是Keil官网2018年的版本,它的编译器是C51 Compiler V9.59.0.0
  1. #include<reg51.h>
  2. typedef unsigned int u16;
  3. void main()
  4. {
  5. P0=0x01;
  6. u16 i;
  7. }

复制代码
把声明新变量的语句放在给8位IO口赋值的语句后会让编译器报如下错误:
  1. syntax error near 'u16', expected '__asm'
  2. 'i': undefined identifier
复制代码
如果交换代码的第5、6行,那么编译器不报错
为什么先给8位IO口赋值再声明新变量会让编译器报错


作者: HC6800-ES-V2.0    时间: 2019-2-3 08:52
申明放前面是没有错的。
至于为什么还不知道,也看到过全局变量写中间也没有报错。
作者: mengzhixinheng    时间: 2019-2-3 09:08
c语言基础语法问题
作者: iofree    时间: 2019-2-3 17:29
我估计应该是编译规则的问题,别的版本也有同样情况,声明还是要放在前面
作者: 钻牛尖滴刘尖尖    时间: 2019-2-3 20:00

c语言基础语法问题 VS 8051单片基本应用,还要磨合一阵子了
作者: 狮巴瑞    时间: 2019-2-16 16:00
这是早期c语言规定的。把c语言标准换成c99就可以了




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