定义在主程序的标头上定义的堆栈结构数组的数据类型

时间:2019-05-05 12:44:13

标签: c data-structures stack

我正在学习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.

}

不确定这是否有意义,是否有可能这样做...但是,如果是,我应该如何处理呢?

1 个答案:

答案 0 :(得分:1)

您的意思是说您想要一堆int,另一堆double和第三堆具有某些自定义结构的东西吗?然后,在C中实际上并没有很好的内置支持。

可以使用传递数据大小的“创建”或“初始化”函数动态分配字节数组来解决此问题。然后,使用element-size找出每个元素在字节数组中的位置。