[問題] PreProcessor的運用
看板C_and_CPP作者Makiyo5566 (五五六六我最棒)時間9年前發表 (2015/09/08 03:47), 9年前編輯推噓1(1推 0噓 1→)留言2則, 1人參與討論串1/2 (看更多)
最近小妹我遇到一個問題想請問一下
(敘述有點長,可以直接end看問題)
想用preprocessor讓code做到無痛切換環境
====================
環境1:
env1->var1, env1->qq1, ...
環境2:
env2_var1, env2_qq1, ...
====================
目前我是運用define:
env1:
#define GG(name) env1->##name
env2:
#define GG(name) env2_##name
本體Code:
GG(var1), GG(qq1), ...
就可以讓code自動切換
但如果
環境1:
env1->var1
環境2:
ENV2_VAR1
問題來了:
我想要靠
GG(var1) 生出 ENV2_VAR1 (大寫)
有什麼辦法嗎?
目前想到的是用兩次define,可是precompiler沒有次序性,所以失敗:
#define var1 VAR1
#define GG(name) ENV2_##name
preproc GG(var1)出來還是 ENV2_var1 不會是預期的 ENV2_VAR1
問題一:
1. 有沒有技巧可以調整predefine ## 的大小寫
2. 有沒有方法讓preproc.像上面能夠有關聯性的執行(好像不太可能?)
問題二:
要怎麼達到這種效果(就是想要取代有意義的字,如member ptr):
#define env1->name env2_##name
問題很奇怪,但小妹一直很困擾,感謝各位解答~~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.221.50.98
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1441684047.A.1D3.html
※ 編輯: Makiyo5566 (61.221.50.98), 09/08/2015 11:52:21
推
09/08 13:04, , 1F
09/08 13:04, 1F
→
09/08 13:04, , 2F
09/08 13:04, 2F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):