C语言编程中经常会出现未定义的是怎么回事??

比如:#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef struct{
ElemType *elem;
int length;
int Listsize;
}Sqlist;
显示ElemType是未定义标识符。这怎么解决

2.return OK也经常出现OK是未定义标识符,总是还要定义下。
这到死是怎么回事

在C语言中,出现未定义,简单来说有以下几种原因:
1、变量类型没有指定。
2、指定类型的方式与C++混淆了,特别是在.c文件中容易出现这种错误。
3、变量指定了类型,但是与使用的变量名不符合,使用的变量名会提示为未定义。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-09
ElemType(也有的书上称之为elemtp)是数据结构的书上为了说明问题而用的一个词。它是element type(“元素的类型”)的简化体。 因为数据结构是讨论抽象的数据存储和算法的,一种结构中元素的类型不一定是整型、字符型、浮点型或者用户自定义类型,为了不重复说明,使用过程中用“elemtype”代表所有可能的数据类型,简单明了的概括了整体。
C语言中不存在这个elemtype。你可以换成flost或double。希望能帮到你。本回答被提问者和网友采纳
第2个回答  2013-05-11

首先你的ElemType和ok都没定义了没 ,ok一个宏还是什么,ElemType是什么一个结构体还是什么?

如果ok是一个宏要在,ElemType是一个结构体在源文件中第一行添加如下代码

#define OK 1
/*我是分隔符*/
typedef struct {
    ElemType *elem;
    int length;
    int Listsize;
}Sqlist;
/*将以下代码改成一下代码*/
typedef struct ElemType
{
    ElemType *elem;
    int length;
    int Listsize;
}Sqlist;

;



第3个回答  2013-05-11
1.因为你的确没有定义E|emType,你可以在花括号前加上他,
如typedef struct ElemType{...
2,加#define 0K 1
补充,第一个问题只能保证编译能通过,因为我不知道他是什么东东,第二个问题可以把定义过的头文件包含在你的c文件中
第4个回答  2015-10-22
一般是因为变量、函数未声明或者头文件没包含进去
相似回答