Re: [問題] c問題

看板C_and_CPP作者 (pony)時間15年前 (2009/02/12 11:43), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
※ 引述《a1b2c3jamie (哈哈)》之銘言: : 大家好~ : 我想請問一下一個c的問題 : 如果我有一個檔案 : ADD name1(a1,b1,c1); //a1 b1 是 input,c1 是output : NOT name2(b1,f1); //b1 是 input,f1 是output : OR name3(c1,d1,e1); //c1 d1 是 input,e1 是output : NAND name4(d1,f1,g1); //d1 f1 是 input,g1 是output : OR name5(e1,g1,h1); //e1 g1 是 input,h1 是output : . : . : . : . : . : 我想把它讀進來 : 然後用link list 把他一整個串起來~ : 那麼該怎麼做呢? : 我想了很久~都不知道該如何下手~ : 希望各位高手能給我一點提示~ : 謝謝!!! 很簡單阿 typedef enum { LOGIC_OP_NOT, LOGIC_OP_AND, LOGIC_OP_OR, LOGIC_OP_NAND, LOGIC_OP_NOR. // other logic operations LOGIC_OP_FORCE_DWORD = 0x7fffffff } LOGIC_OP; typedef struct logic1_t { int input; int output; LOGIC_OP op; char* gate_name; } logic1_t; typedef struct logic2_t { int input1; // input 1 id int input2; // input 2 id int output; // output id LOGIC_OP op; char* gate_name; } logic2_t; 以此類推, 當然你要把 logic 宣告成 class 用 c++ 繼承的觀念 也是可以啦 接下來是宣告每個 signal, 至於 signal table 的插入 建議是使用 hash, 會比較輕鬆一點 typedef struct signal_t { // define signal, add what you want here } signal_t; #define MAX_SIGNAL_NUM 1024 signal_t* signal_table[MAX_SIGNAL_NUM]; 最後面用讀檔案的方式, 把logic gates都放到 std::list<logic_t*> logic_list 讀檔時順便建立一下 signal table -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.207.94 ※ 編輯: pponywong 來自: 140.114.207.94 (02/12 11:50) ※ 編輯: pponywong 來自: 140.114.207.94 (02/12 11:51)

02/12 11:53, , 1F
忘了說 input, output id對應到signal table的signal
02/12 11:53, 1F

02/13 15:24, , 2F
謝謝~~我會去研究看看滴!!!
02/13 15:24, 2F
文章代碼(AID): #19avhbPC (C_and_CPP)