编译时出现的警告 warning: missing braces around initializer

kiko_lee 2005-04-30 09:57:22
---------------------------------------------------------------------------
/* declaration of Morse */

Morse MorseTable[]=
{
' ',NIL,NIL,NIL,NIL,NIL,NIL,NIL,
'A',DIH,DAH,NIL,NIL,NIL,NIL,NIL,
'B',DAH,DIH,DIH,DIH,NIL,NIL,NIL,
'C',DAH,DIH,DAH,DIH,NIL,NIL,NIL,

[etc...]

'0',DAH,DAH,DAH,DAH,DAH,NIL,NIL,
'?',DIH,DIH,DAH,DAH,DIH,DIH,NIL,
'/',DAH,DIH,DIH,DAH,DIH,NIL,NIL,
0, NIL,NIL,NIL,NIL,NIL,NIL,NIL /* END MARKER */
};

/* structure called Morse */

typedef struct
{
char code;
enum
{
NIL,
DIH,
DAH,
} data[7];
} Morse;

/* example of how table is called */

Morse *CharToMorse(char c)
{
int ct=0;
while(MorseTable[ct].code)
{
if(MorseTable[ct].code==c)
return(&MorseTable[ct]);
ct++;
}
return(NULL);
}
-----------------------------------------------------------------------

Looks one-dimensional to me.....

The warnings says:
$ gcc -Wall morse.c
morse.c:52: warning: missing braces around initializer
morse.c:52: warning: (near initialization for `MorseTable[0]')

line 52 is: ' ',NIL,NIL,NIL,NIL,NIL,NIL,NIL, (see above)


如何消除这样的编译警告呢,在线等待。
...全文
2056 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kiko_lee 2005-04-30
  • 打赏
  • 举报
回复
嘿嘿,这个和前置无关的,本来声明是放在头文件的。出现的只是warning而已,关闭Werror就没有错误了,只是想好好的规范一下代码而已。

useresu(俗人) ( ) 信誉:100 放心好了,等这个解决了,再开一个额外送100分。
useresu 2005-04-30
  • 打赏
  • 举报
回复
问题解决的话,楼主给分啊,呵呵
useresu 2005-04-30
  • 打赏
  • 举报
回复
先声明,才能使用啊

不然你用个前置声明.


useresu 2005-04-30
  • 打赏
  • 举报
回复
typedef struct {
char name[ENTRY_NAME_SIZE];
int priority;
int options;
int stackSize;
FUNCPTR entryFunc;
char msgQName[ENTRY_NAME_SIZE];
char semaName[ENTRY_NAME_SIZE];
int arg1;
int arg2;
} TASK_ENTRY;


TASK_ENTRY gTaskTable[] = {
{"Telnetd",100,0,64*1024,(FUNCPTR)telnetd,0,0,0,0},
{"SnmpTrap",105,0,64*1024,(FUNCPTR)snmpTrapMain,0,0,0,0},
{"Alarm",110,0,64*1024,(FUNCPTR)ALARM_Callback,0,0,0,0},
{"Snmpd",111,0,64*1024,(FUNCPTR)snmpdMain,0,0,0,0}
};
kiko_lee 2005-04-30
  • 打赏
  • 举报
回复
下面这个也是同样的错误,如何修改比较合适呢?

TASK_ENTRY gTaskTable[] = {
{"Telnetd",100,0,64*1024,(FUNCPTR)telnetd,0,0,0,0},
{"SnmpTrap",105,0,64*1024,(FUNCPTR)snmpTrapMain,0,0,0,0},
{"Alarm",110,0,64*1024,(FUNCPTR)ALARM_Callback,0,0,0,0},
{"Snmpd",111,0,64*1024,(FUNCPTR)snmpdMain,0,0,0,0}
};

typedef struct {
char name[ENTRY_NAME_SIZE];
int priority;
int options;
int stackSize;
FUNCPTR entryFunc;
char msgQName[ENTRY_NAME_SIZE];
char semaName[ENTRY_NAME_SIZE];
int arg1;
int arg2;
} TASK_ENTRY;
elipse 2005-04-30
  • 打赏
  • 举报
回复
同上
useresu 2005-04-30
  • 打赏
  • 举报
回复
enum exp
{
NIL,
DIH,
DAH,
} ;//上边此处多了个data,去掉,呵呵
typedef struct
{
char code;
exp data[7];
} Morse;

/* example of how table is called */

Morse MorseTable[]=
{
' ',NIL,NIL,NIL,NIL,NIL,NIL,NIL,
'A',DIH,DAH,NIL,NIL,NIL,NIL,NIL,
'B',DAH,DIH,DIH,DIH,NIL,NIL,NIL,
'C',DAH,DIH,DAH,DIH,NIL,NIL,NIL,

//[etc...]

'0',DAH,DAH,DAH,DAH,DAH,NIL,NIL,
'?',DIH,DIH,DAH,DAH,DIH,DIH,NIL,
'/',DAH,DIH,DIH,DAH,DIH,NIL,NIL,
0, NIL,NIL,NIL,NIL,NIL,NIL,NIL
};


Morse *CharToMorse(char c)
{
int ct=0;
while(MorseTable[ct].code)
{
if(MorseTable[ct].code==c)
return(&MorseTable[ct]);
ct++;
}
return(NULL);
}
一个枚举就是一个新的类型,跟其他任何类型都不同
useresu 2005-04-30
  • 打赏
  • 举报
回复
我改过了,
这样就没问题了
useresu 2005-04-30
  • 打赏
  • 举报
回复
enum exp
{
NIL,
DIH,
DAH,
} data;
typedef struct
{
char code;
exp data[7];
} Morse;

/* example of how table is called */

Morse MorseTable[]=
{
' ',NIL,NIL,NIL,NIL,NIL,NIL,NIL,
'A',DIH,DAH,NIL,NIL,NIL,NIL,NIL,
'B',DAH,DIH,DIH,DIH,NIL,NIL,NIL,
'C',DAH,DIH,DAH,DIH,NIL,NIL,NIL,

//[etc...]

'0',DAH,DAH,DAH,DAH,DAH,NIL,NIL,
'?',DIH,DIH,DAH,DAH,DIH,DIH,NIL,
'/',DAH,DIH,DIH,DAH,DIH,NIL,NIL,
0, NIL,NIL,NIL,NIL,NIL,NIL,NIL
};


Morse *CharToMorse(char c)
{
int ct=0;
while(MorseTable[ct].code)
{
if(MorseTable[ct].code==c)
return(&MorseTable[ct]);
ct++;
}
return(NULL);
}
kiko_lee 2005-04-30
  • 打赏
  • 举报
回复
严格要求一些的,只是不明白为什么这样会被看作是错误。

认为既然编译器报警告了,就可以看作代码确实有问题。
junguo 2005-04-30
  • 打赏
  • 举报
回复
你要怎么去除呢?你可以降低编译器的警告级别,可能就不会警告了。
不过其实这样好像也没什么问题!

70,014

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧