![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
C语言elemtype
数据结构里其中有一段是这样的:typedefstruct{elemtype*elem;intlength;intlistsize;}sqlist;其中elemtype不是...
数据结构里其中有一段是这样的:
typedef struct{
elemtype *elem;
int length;
int listsize;
}sqlist;
其中elemtype不是关键字,那么如果我要让这个语句在C程序中能执行,应该怎么写? 展开
typedef struct{
elemtype *elem;
int length;
int listsize;
}sqlist;
其中elemtype不是关键字,那么如果我要让这个语句在C程序中能执行,应该怎么写? 展开
2个回答
展开全部
我理解你说的意思是不是想让elemtype可以替换任意一种类型?
如果是的话,这种东西叫做模板,它是C++的内容,不在C语言的范畴内。
具体用法是:
template <typename elemtype>
typedef struct{
elemtype *elem;
int length;
int listsize;
}sqlist;
之后声明变量时要赋予elemtype一个已知的类型,比如int。
struct sqlist<int> a;
对于a这里面的elemtype就变成了int。
不过这是C++的内容,C里面不能用。
如果不用模板,而必须在C语言里用的话,有两种方法。
1. 之前声明它
typedef int elemtype;
2. 之前预编译它
#define elemtype int
如果是的话,这种东西叫做模板,它是C++的内容,不在C语言的范畴内。
具体用法是:
template <typename elemtype>
typedef struct{
elemtype *elem;
int length;
int listsize;
}sqlist;
之后声明变量时要赋予elemtype一个已知的类型,比如int。
struct sqlist<int> a;
对于a这里面的elemtype就变成了int。
不过这是C++的内容,C里面不能用。
如果不用模板,而必须在C语言里用的话,有两种方法。
1. 之前声明它
typedef int elemtype;
2. 之前预编译它
#define elemtype int
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询