0

我正在参考 Noel Kalicharan 的书“C 中的数据结构”。在示例程序 P4.4 中,它说:

#include <stdio.h>
typedef struct {
char ch;
} StackData;

#include <stack.h>

stack.h 的#include 出现在 typedef 之后的原因是因为 stack.h 依赖于 StackData。是否有任何关于实现更便携/通用的 StackData 目标的更好方法的建议?(其他用户可能想要包含 stack.h,但他们的 StackData 有不同的数据类型。)我并不特别关心 typedef 必须在 #include 之前的方式。

有没有更好/更简洁的方法来实现这个目标?

非常感谢,

4

1 回答 1

0

更好的方法是使用模板,但我猜你还没有学会它。

现在,将结构定义放在头文件中并包含它会更整洁。

像这样:

//filename: StackData.h
#ifndef  __StackData__HDR__
#define  __StackData__HDR__

typedef struct {
char ch;
} StackData;

#endif

那么你的文件可以是:

#include <stdio.h>
#include "StackData.h"
#include <stack.h>
于 2013-10-08T14:55:50.330 回答