求助error: initializer element is not constant的错误,麻烦指点。
时间:2010-08-26
来源:互联网
论坛也有人讨论过这个错误,在http://bbs.chinaunix.net/thread-1285396-1-1.html中,
但没看懂。
我的test.c如下
复制代码
报错如下:
[root@localhost cmd]# gcc test.c
test.c:26: error: initializer element is not constant
test.c:26: error: (near initialization for 'strAdmitem[0].pcCommand')
test.c:27: error: initializer element is not constant
test.c:27: error: (near initialization for 'strAdmitem[0].pFunc')
test.c:28: error: initializer element is not constant
test.c:28: error: (near initialization for 'strAdmitem[1].pcCommand')
有没有人可以帮我指点下?
但没看懂。
我的test.c如下
- #include <stdio.h>
-
- typedef struct Admitem
- {
- const char *pcCommand;
- int (*pFunc)(int, char**);
- } Admitem_t;
-
- static int Start(int iArgc, char *cArgv[])
- {
- return 0;
- }
-
- static int Stop(int iArgc, char *cArgv[])
- {
- return 0;
- }
-
- static int Show(int iArgc, char *cArgv[])
- {
- return 0;
- }
-
- static Admitem_t strAdmitem[]=
- {
- ("start", Start),
- ("stop", Stop),
- ("show", Show),
- };
-
-
- int main(int iArgc, char *cArgv[])
- {
- return 0;
- }
[root@localhost cmd]# gcc test.c
test.c:26: error: initializer element is not constant
test.c:26: error: (near initialization for 'strAdmitem[0].pcCommand')
test.c:27: error: initializer element is not constant
test.c:27: error: (near initialization for 'strAdmitem[0].pFunc')
test.c:28: error: initializer element is not constant
test.c:28: error: (near initialization for 'strAdmitem[1].pcCommand')
有没有人可以帮我指点下?
作者: younglovej 发布时间: 2010-08-26
附上我的GCC信息
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)
作者: younglovej 发布时间: 2010-08-26
同学,你必须知道,一个结构体是用花括号 {} 而不是圆括号 () 来描述的。
作者: langue 发布时间: 2010-08-26
QUOTE:
同学,你必须知道,一个结构体是用花括号 {} 而不是圆括号 () 来描述的。
langue 发表于 2010-08-26 11:50
langue 发表于 2010-08-26 11:50
我哭了,居然犯了这么低级的错误。。。
谢谢楼上花费时间了来帮我定位。。
真惭愧。。。
作者: younglovej 发布时间: 2010-08-26
这费啥时间啊。根本不用看源码。第一眼看到
test.c:26: error: initializer element is not constant
再看26 行,有()这个东东。于是行出为什出错。
总时间不超过二秒。
test.c:26: error: initializer element is not constant
再看26 行,有()这个东东。于是行出为什出错。
总时间不超过二秒。
作者: zhangsuozhu 发布时间: 2010-08-26
QUOTE:
这费啥时间啊。根本不用看源码。第一眼看到
test.c:26: error: initializer element is not constant
...
zhangsuozhu 发表于 2010-08-26 12:07
test.c:26: error: initializer element is not constant
...
zhangsuozhu 发表于 2010-08-26 12:07
是啊,没写码太久,基础都忘了,要补回来才行了。
作者: younglovej 发布时间: 2010-08-26
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28