[問題] 預處理及namespace的用法討論
一般情況是有多組同名常數時會用預處理
#ifdef CodeA
#define a xxx;
#define b yyy;
#endif
#ifdef CodeB
#define a yyy;
#define b ppp;
#endif
如果要處理變數時雖然怪怪的,但下面這種也看過...
#ifdef CodeA
int a = xxx;
int b = yyy;
#endif
#ifdef CodeB
int a yyy;
int b ppp;
#endif
然後用#define CodeA //#define CodeB當開關
但我總覺得這樣寫不太好(雖然我也說不上哪裡不好,但我總覺得盡量少用預處理..),
因此我自己是想用namespace 包起來
由於在我自己看過的code中,極少看到有人寫namespace (大部分看得的code都還是用純c就是...)
有多組同名變數global 變數用namespace包起來(取代預處理)
namespace setA
{
int a=xxx;
int b=ooo;
.....
}
namespace setB
{
int a = yyy;
int b = ppp;
}
if (/*Condition A*/)
using namespace setA;
if(/*Condition B*/)
using namespace setB;
---------------------------
但這種寫法卻似乎很少看到,
反而是寫預處理的情況比較多
想請問如果不得不用global變數,而且有多組同名"變數"時,用這個方法是否適當?
或是有什麼特別的方法可以代替
(寫介面好像又太複雜了...)
或者是其實這種情況就留給預處理器就好了,然後我應該改掉我的潔癖...?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.68.86.252
※ 編輯: whoowh 來自: 210.68.86.252 (02/22 14:00)
※ 編輯: whoowh 來自: 210.68.86.252 (02/22 14:03)
推
02/22 14:06, , 1F
02/22 14:06, 1F
推
02/22 14:11, , 2F
02/22 14:11, 2F
→
02/22 14:11, , 3F
02/22 14:11, 3F
推
02/22 17:27, , 4F
02/22 17:27, 4F
→
02/22 18:10, , 5F
02/22 18:10, 5F