Re: [問題] c問題
※ 引述《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
02/12 11:53, 1F
推
02/13 15:24, , 2F
02/13 15:24, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章