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

C 定义在主程序的标头上定义的堆栈结构数组的数据类型,c,data-structures,stack,C,Data Structures,Stack,我正在学习C语言,目前正在研究数据结构。 我正在用一个数组在头文件中实现一个基本堆栈,我希望能够将它包含在不同的主程序中 我的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

我正在学习C语言,目前正在研究数据结构。 我正在用一个数组在头文件中实现一个基本堆栈,我希望能够将它包含在不同的主程序中

我的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的任何主.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.

}
//Main.c
#包括
#包括
#包括“stack.h”
int main(){
斯塔克街;
//这里以某种方式定义我的堆栈所需的数据类型。
}

不确定这是否有意义,是否有可能这样做。。。但是如果是的话,我应该怎么做呢?

你的意思是你想要一个
int
堆栈,另一个
堆栈,还有第三个自定义结构堆栈?那么在C语言中就没有很好的内置支持了


它可以通过动态分配字节数组来解决,使用传递数据大小的“创建”或“初始化”函数。然后使用元素大小计算每个元素在字节数组中的位置。

是的,这正是我的意思,我非常感谢您的回答。