OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 16038|回复: 7

编译出现问题 请求指导。。。。expression must have a constent value。。下面是部分代码。。

[复制链接]

36

主题

118

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2012-3-23
在线时间
0 小时
发表于 2012-12-5 10:04:52 | 显示全部楼层 |阅读模式
    以前没遇到过。请大家看看,帮忙分析分析。。。。谢过了。。
编译错误如下:
     ..\src\decode_rs.c:         ^
..\src\decode_rs.c(443): error:  #28: expression must have a constant value
..\src\decode_rs.c:     unsigned tau_odd[]={0,tau_err_poly[2],tau_err_poly[4],tau_err_poly[6],tau_err_poly[8]};
..\src\decode_rs.c:                           ^
..\src\decode_rs.c(443): error:  #28: expression must have a constant value
..\src\decode_rs.c:     unsigned tau_odd[]={0,tau_err_poly[2],tau_err_poly[4],tau_err_poly[6],tau_err_poly[8]};
..\src\decode_rs.c:                                           ^
..\src\decode_rs.c(443): error:  #28: expression must have a constant value
..\src\decode_rs.c:     unsigned tau_odd[]={0,tau_err_poly[2],tau_err_poly[4],tau_err_poly[6],tau_err_poly[8]};
..\src\decode_rs.c:           

程序所在处:
 unsigned char node[5];
 unsigned char temp1,temp2,reverse,temp;
 unsigned char deno[18];
 unsigned char numerator[9][18],node_2[9],z_value[18];
 unsigned tau_odd[]={0,tau_err_poly[2],tau_err_poly[4],tau_err_poly[6],tau_err_poly[8]};          //这一行的初始化错了吗??????????????????
 for(i=1;i<=root_size;i++)
 {
  for(j=1;j<=4;j++)
   deno_buf[j]=tau_odd[j];
  for(k=1;k<=255-root;k++)                                                ^
天天实验室   却无成就。。。。。惨蛋!  感谢opendv的所有大虾。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-12-5 11:09:06 | 显示全部楼层
tau_err_poly,这个是什么东东?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2012-12-5 11:19:14 | 显示全部楼层
不能这样定义一个数组的,要给具体值,要么就不写。你写个参数值,当然不行了
1-1
回复 支持 反对

使用道具 举报

36

主题

118

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2012-3-23
在线时间
0 小时
 楼主| 发表于 2012-12-5 18:51:53 | 显示全部楼层
我改好了,谢谢大家。。但是不明白的是,为什么在CV6++环境下,这样定义就可以,而在keil环境下就不行?环境的不同有这么大的差距啊?

改的方法是:先将数组定义成={0,0,0,0,0}

然后再将其一个一个元素赋值。
天天实验室   却无成就。。。。。惨蛋!  感谢opendv的所有大虾。。
回复 支持 反对

使用道具 举报

36

主题

118

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2012-3-23
在线时间
0 小时
 楼主| 发表于 2012-12-5 18:53:07 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
tau_err_poly是另一个数组。。
天天实验室   却无成就。。。。。惨蛋!  感谢opendv的所有大虾。。
回复 支持 反对

使用道具 举报

36

主题

118

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2012-3-23
在线时间
0 小时
 楼主| 发表于 2012-12-5 18:54:06 | 显示全部楼层
回复【3楼】mygod:
---------------------------------
恩,但是在VC6++里面是可以这样的。。在keil里就不行,你知道为什么不?
天天实验室   却无成就。。。。。惨蛋!  感谢opendv的所有大虾。。
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2012-12-5 22:48:25 | 显示全部楼层
不太清楚。c++和c的区别吧
业余程序玩家。
回复 支持 反对

使用道具 举报

0

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2015-10-15
在线时间
39 小时
发表于 2017-2-28 21:29:52 | 显示全部楼层
error:  #28: expression must have a constant value               
第28行的表达式必须赋值为常量值,比如:  
a[n]={};   应改为a[]={};或a[num]={};
uint16_t p=a[0]; 鐧该为uint16_t p=num;
变量的初始化必须为常量,不可以用变量初始化另一个变量
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-12 22:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表