我正在学习C语言-目前正在研究数据结构。 我正在用头文件中的数组实现基本的Stack,我希望能够将其包含在不同的主程序中。
我的stack.h文件:
#define STACK_SIZE 10
typedef int elem; // Data Type of the stack array
// Stack Struct
struct stack {
elem array[STACK_SIZE]; // Stack Data table
int top; // Stack Head
};
typedef struct stack STACK;
我在我的stack.h中使用typedef作为堆栈数组的数据类型。
但是,我希望能够根据需要从包括stack.h在内的任何main.c文件中定义不同的数据类型。
如下所示:
// Main.c
#include <stdio.h>
#include <stdlib.h>
#include "stack.h"
int main(){
STACK st;
// Here define somehow the desired data-type of my STACK.
}
不确定这是否有意义,是否有可能这样做...但是,如果是,我应该如何处理呢?
答案 0 :(得分:1)
您的意思是说您想要一堆int
,另一堆double
和第三堆具有某些自定义结构的东西吗?然后,在C中实际上并没有很好的内置支持。
可以使用传递数据大小的“创建”或“初始化”函数动态分配字节数组来解决此问题。然后,使用element-size找出每个元素在字节数组中的位置。