【发布时间】:2012-04-14 21:18:38
【问题描述】:
我正在为一个项目编写一组链表函数。
我需要为列表节点(int/char)中的数据类型提供灵活性
所以我正在尝试做这样的事情:
在 main.cpp 中
#define INT_DATA
#include "lists.h"
....
在lists.h中
#ifdef CHAR_DATA
typedef char DATA_TYPE;
#endif
#ifdef INT_DATA
typedef int DATA_TYPE;
#endif
typedef struct lnode {
DATA_TYPE data;
struct lnode* next; //points to the next node
} LNODE;
LNODE * createNewListNode(DATA_TYPE data, LNODE* next);
....
但所有这些似乎都不起作用...... 当只是原型不同时,我不想编写重复的代码..
我做错了什么?这可能吗?
请注意
这是一个练习,我不能使用类,我不能使用任何标准库
【问题讨论】:
-
如果您使用的是 C++,那么也许您可以简单地使用 std::list 而不是自己编写?
-
为什么要使用像预处理器这样笨重的东西而不是模板?另外,您能否将遇到的错误添加到您的问题中?
-
那不是 C++,那是 C。你不会用
.cpp扩展名欺骗任何人。如果你想真正做 C++,请使用模板。 -
@BenC 我不能使用类,我不能使用任何标准库
-
@EtiennedeMartel 我不能使用类,我不能使用任何标准库
标签: c++ c linked-list typedef c-preprocessor