EE_DSnP 板


LINE

: 我想請問 我現在假如在aig這個file裡面放兩個檔案 aiger.h aiger.c : 然後我想要在cir這個file 的 cirInterface.cpp裡面去用 aiger.h 裡面的函式或struct : : 那我大概這樣寫: : : extern "C"{ : struct aiger;//這是我想用的struct : const char *aiger_open_and_read_from_file(aiger *, const char *); : //這是我想用的函式 : } : : int : aigToCir (const char *fileName) : { : aiger * aigerPtr = new aiger; : aiger_open_and_read_from_file(aigerPtr, fileName);//我想用這個aiger去吃 : ...... : } 這個作業的目的之ㄧ就是要考驗大家對於 variable/class/function "declare", "define", "instantiate" 與 "operate" 的觀念. 題目規定不可以在 cir 中 include "aiger.h", 所以你不可能讓 cir 的 function "看見" aiger.h 裏面 struct 的定義, 比方說 "struct aiger". 所以上面這行: aiger * aigerPtr = new aiger; 當然是會 compile 不過! (觀念: 必須在目前的 scope 裡面看得到 struct aiger 的定義才可以 instantiate struct aiger 的物件, 不管是 "aiger aigObj" or "aiger *aigerPtr = new aiger".) 所以: (考驗) aigerPtr 要在哪裡 instantiate 呢? 此外, 在 cir 裏面既然看不到 struct aiger, 也不能宣告 aiger 的物件, (想一想) cir 的 function 裏面可以看的到 aiger* 的變數嗎? 可以將 aiger* 的變數當做 function call 的參數嗎? 可以直接 operate on aiger* 的變數嗎? (Hint: 上面的三個問題有兩個 yes, 一個 no) 所以, (關鍵) 在 cir 裏面要如何"拿到" aiger* vaiable 裡的東西(比方說 number of PIs)? 要如何才能操作 aiger* 的 variable 呢? : : 我想請問 : 在不改cir 和 aig 這兩個file的makefile的情況下 : cir 可以看到aig 這個file的 .h .c檔 然後extern 可以抓到我要的東西嗎? : 我發現似乎是不行...它好像看不到放在aig資料夾的.c .h檔 ... 不行的. : : 請問該如何解決呢? 還是我的想法&用法根本就是錯的orz.. 你可以考慮在 aig package 裡加入一些 "interface functions", 讓 cir 可以不用 透過 include "aiger.h" 也能對 aiger* 的物件進行操作... (說得太明了...) :



※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 219.68.89.39 : 推 trancewu:因為Makefile中的"EXTHDRS"不可以改,所以找不到aiger.h 05/31 17:15 沒錯! : → battlecruise:那位什麼呼叫aiger.h的 function 是ok的? 05/31 17:40 要用 extern "C" 吧!? "extern" 的意義就是告訴 compiler 在 compile 目前這個檔案時若有一些 function 的定義找不到沒有關係, 因為它是定義在 "external" 的檔案裡. 重點是 linking 時要將這些 undefined 的 symbol 全部都 resolve 掉, 否則你就會看到 "xxxx undefined" 這樣的 linking error... : 推 bnsblue:不知道能不能把aiger.h link放在include裡面.. 05/31 19:17 : → bnsblue:這應該沒有禁止? 05/31 19:17 這個是禁止的!! : 推 bnsblue:阿歹勢我好像搞錯問題了!? 05/31 19:27 : → battlecruise:啊 所以好像有些動作必須要在aig.h做... y 05/31 19:56 : → battlecruise:更正 aig 的資料夾 05/31 19:56 是的, 請見 1300 篇的規定!! --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.132.98 ※ 編輯: ric2k1 來自: 59.121.132.98 (05/31 21:30)
1F:推 trancewu:為什麼我覺得三個都是NO...orz 05/31 22:25
2F:→ ric2k1:Hint: extern aiger*...? 05/31 22:28
3F:推 battlecruise:太感謝了!!! 06/01 01:36
4F:推 trancewu:可是不是沒有include aiger.h,所以不知道aiger的內容 06/01 02:30
5F:→ trancewu:這樣還可以用pointer去使用aiger裡的物件嗎@@ 06/01 02:31







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP