Re: [問題] stack 跟 union的問題
※ 引述《ckai1983 ( )》之銘言:
> struct EOP {
> int left, right, current, top;
> };
> union stack_mem {
> int data;
> struct EOP;
> };
先假設你用的是純 C。
union 不要放在最外層,
習慣上要模擬 polymorphism 會把 union 擺在一個 struct 內,
像是:
enum data_type {
INT_TYPE,
EOP_TYPE
};
struct stack_mem {
union {
int ival;
struct EOP eopval;
} data;
enum data_type type;
};
type 的部分用來描述 data 裡面是用 ival 還是 eopval。
> struct stackNode {
> union stack_mem sm;
> struct stackNode *nextPtr;
> };
> void push(StackNodePtr *, 這裡不知道怎麼做);
這邊就可以直接這樣寫:
void push(StackNodePtr *ptr, struct stack_mem *info)
{
...
switch(info->type) {
case INT_TYPE:
...
break;
case EOP_TYPE:
...
break;
}
}
--
Name: Tseng, Ling-hua E-mail Address: uranus@it.muds.net
School: National Chung Cheng University
Department: Computer Science and Information Engineering
Researching: Porting GCC and Implementing VLIW instruction scheduler in GCC
Homepage: https://it.muds.net/~uranus
--
╔═══╗ ┼────────────────────────╮
║狂狷 ║ │* Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮
║ 年少║ ┼╮ < IP:140.119.164.16 > ╰─╮
╚╦═╦╝ ╰ * From:218-171-137-243.dynamic.hinet.net
─╨─╨─ KGBBS ─ ◎ 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩 ◎
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章