[問題] C的#define有辦法「語句」換成另外的「 …

看板C_and_CPP作者 (狗狗)時間14年前 (2010/03/20 08:27), 編輯推噓4(4010)
留言14則, 8人參與, 最新討論串1/1
C的#define可以拿來「單字」抽換成另外一個「單子」 但是有辦法可以「語句」抽換成「語句」嗎? 我要的不是像巨集一樣 macro(args) 之類的 來進行抽換 而是例如:把How are you?抽換成I'm fine. Thank you. (以上代表是code語句而不是用引號包起來的字串...) 有辦法做到嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.77.52.127

03/20 10:18, , 1F
請問為什麼要這樣做 用意是?
03/20 10:18, 1F

03/20 10:58, , 2F
不好意思 中文英文都不好 看不懂問題點...
03/20 10:58, 2F

03/20 10:59, , 3F
這個要用 editor來做 ctrl+r,How... I'm..., replace all
03/20 10:59, 3F

03/20 11:11, , 4F
有辦法寫成 #define OUT printf(
03/20 11:11, 4F

03/20 11:12, , 5F
OUT"hi");
03/20 11:12, 5F

03/20 11:12, , 6F
這種code嗎? 如果不行 是因為規定嗎?
03/20 11:12, 6F
例如我想將一個assignment改成呼叫function 例如 當我這樣寫的時候: aNumberObject.int = 10; <==這是code的使用寫法 實際上是會被compiler認為是: aNubmerObject.setInt(10); <==這時實際上的執行內容 這樣我就能在setInt()的function去改變這個assignment的行為... 而可以在aNumberObject.int使用特定的setter/getter 這只是一種舉例 如果可以改變語句的定義 可以做的事情應該會更多 ※ 編輯: leondemon 來自: 120.126.97.60 (03/20 11:59)

03/20 12:18, , 7F
請愛用 regular expression
03/20 12:18, 7F

03/20 12:57, , 8F
assignment 超直覺的啊! C#的存取子就是這樣來的
03/20 12:57, 8F
或者是我想要用macro的功能 但是呼叫時不想用macro的方式 (就是呼叫時 不想寫的像呼叫一個function) 而可以讓我用「幾個字」來呼叫一個macro (還是說有辦法用字串呼叫macro?) ※ 編輯: leondemon 來自: 120.126.97.60 (03/20 13:05)

03/20 13:03, , 9F
感覺妳是該學OO那一套?
03/20 13:03, 9F

03/20 13:07, , 10F
是的! 我是要用OO那套 但不是原本內定OO語法 而是新的
03/20 13:07, 10F

03/20 13:07, , 11F
感覺有點像自定新的語法來寫OO
03/20 13:07, 11F
※ 編輯: leondemon 來自: 120.126.97.60 (03/20 13:09)

03/20 13:11, , 12F
或是說替原本的OO語法增加新的語意
03/20 13:11, 12F

03/20 14:42, , 13F
Ruby-way: def = (in) begin self.in=in end
03/20 14:42, 13F

03/20 18:16, , 14F
學弟名言:「存取私變數, #define private public」
03/20 18:16, 14F
文章代碼(AID): #1Bf1Q6Hd (C_and_CPP)