结构体数组

3

我正在尝试创建一个结构体数组(对C语言不熟悉),但在初始化数组时出现了“数组类型具有不完整的元素类型”的错误提示。请问我做错了什么?

typedef struct morsechar
{
   char  character;
   char* morse;
} MorseChar;

struct MorseChar lookup[] ={{'A', ".-"},    {'B', "-..."},  {'C', "-.-."},  
                            {'D', "-.."},   {'E', "."},     {'F', "..-."},      
                            {'G', "--."},   {'H', "...."},  {'I', ".."},
                            {'J', ".---"},  {'K', "-.-"},   {'L', ".-.."},
                            {'M', "--"},    {'N', "-."},    {'O', "---"},
                            {'P', ".--."},  {'Q', "--.-"},  {'R', ".-."},
                            {'S', "..."},   {'T', "-"},     {'U', "..-"},
                            {'V', "...-"},  {'W', ".--"},   {'X', "-..-"},
                            {'Y', "-.--"},  {'Z', "--.."},  {'0', "-----"}, 
                            {'1', ".----"}, {'2', "..---"}, {'3', "...--"},
                            {'4', "....-"}, {'5', "....."}, {'6', "-...."},    
                            {'7', "--..."}, {'8', "---.."}, {'9', "----."},
                            {'.', "#"},     {'-', "^"}}; 
1个回答

8
你已经定义了类型 struct morsecharMorseChar,但是你尝试使用未定义的类型 struct MorseChar。相反,应该写成:
MorseChar lookup[] = { /* Same as before */ };

2
但是这样做typedef就会变得多余。+1。 - paxdiablo
谢谢回复,但是即使进行了更正,我仍然得到相同的错误:数组类型具有不完整的元素类型。 - Cory
@Cory,当使用typedef时,除非是递归结构,否则不需要指定结构标记: typedef struct { ... } MorseChar; 就足够了。 - Jim Balter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接