跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 在 C 中自己实现了一个栈数据结构,栈元素类型设置为 SElemType,使用的时候用 typedef 定义,比如 typedef int SElemType。现在要在一个程序中用两个栈,分别保存 int 和 float,请问该怎么办?
未分類
20 7 月 2020

在 C 中自己实现了一个栈数据结构,栈元素类型设置为 SElemType,使用的时候用 typedef 定义,比如 typedef int SElemType。现在要在一个程序中用两个栈,分别保存 int 和 float,请问该怎么办?

在 C 中自己实现了一个栈数据结构,栈元素类型设置为 SElemType,使用的时候用 typedef 定义,比如 typedef int SElemType。现在要在一个程序中用两个栈,分别保存 int 和 float,请问该怎么办?

資深大佬 : nerif 3

用宏来生成对应的 struct 和 typedef ?
比如原来是这样的
“`
typedef int SElemType;
struct my_struct
{
SElemType x;
};
“`
现在可以改成
“`
#define DEF_MY_STRUCT(T)
typedef T SElemType_##T;
struct my_struct_##T
{
SElemType_##T x;
};

DEF_MY_STRUCT(int);
“`

大佬有話說 (3)

  • 資深大佬 : ysc3839

    @ysc3839 谢谢老哥,这种方法确实能在一定程度上解决问题,但还有一些问题无法解决。我定义了栈的一些操作函数,部分函数的参数类型为 SElemType,比如 Push(Stack *S, SElemType e)。如果用宏的方法,那含有 SElemType 类型参数的操作函数该如何实现,也像 struct 一样在宏里实现吗,那样宏就有点太长了

  • 主 資深大佬 : nerif

    @nerif 是的,否则你得实现一个 variant 类型。因为不同数据类型编译出来的代码是不同的,你要同样的代码支持不同数据类型的话,只能把这些数据类型都塞到一个数据结构中。
    另外,如果条件允许的话,更建议直接使用 C++。必须用 C 的话也可以考虑使用第三方库。

  • 資深大佬 : ysc3839

    @ysc3839 好的,谢谢老哥,看来我确实得考虑用 C++ 了。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具