springvirus 发表于 2024-9-14 13:59:36

KEIL251的编译问题

本帖最后由 springvirus 于 2024-9-14 15:41 编辑

void test(unsigned char n)
{
      unsigned char a = n;

}

编译后,报错

user\main.c(894): error C25: syntax error near '20'


只有把形参的n改为其他字母,就可以了

有点莫名其妙
---------------------------------------------------------------------



void test(unsigned char *pdata)
{
      

}


上面这个函数,明明没有语法问题,但是报以下语法错误

user\main.c(895): error C25: syntax error near ')'

经过多次尝试,也是对形参的名字有要求,pdata和data都不行 !!!!!! pdat和dat 就可以!!!!!

系统占用了这么多关键字吗






DebugLab 发表于 2024-9-14 15:09:32

字符串已有其他的定义,冲突了

21cnsound 发表于 2024-9-14 15:09:35

经测试,第一个test编译没有问题,C51和C251都正常无警告。
第二个test,形参肯定不能用pdata这个系统关键字的。

springvirus 发表于 2024-9-14 15:40:44

21cnsound 发表于 2024-9-14 15:09
经测试,第一个test编译没有问题,C51和C251都正常无警告。
第二个test,形参肯定不能用pdata这个系统关键 ...

我用的C251的WarningLevel2 ,不知你用的哪个选项

21cnsound 发表于 2024-9-14 16:28:01

springvirus 发表于 2024-9-14 15:40
我用的C251的WarningLevel2 ,不知你用的哪个选项

我用命令行编译的,应该是默认告警级别

21cnsound 发表于 2024-9-14 17:01:08

WarningLevel 只有0/1/2/3四个档,默认是2,没有告警,3就有C183告警了
页: [1]
查看完整版本: KEIL251的编译问题