2009-11-04

#ifdef #else 該怎麼寫?

最近寫了一段 code :
for(conditions)
{
    statements;
#ifdef WIN32
    win32_statements;
#else
    else_statements;
#endif
    statements;
}
但是也考慮下面這種寫法:
#ifdef WIN32
for(conditions)
{
    statements;
    win32_statements;
    statements;
}
#else
for(conditions)
{
    statements;
    else_statements;
    statements;
}
#endif
其實效能來說兩者沒有差異,因為在 compiler 階段時便已決定要執行的區段。
也就是說在 WIN32 環境下 object code 裡面只會有這段程式:
for(conditions)
{
    statements;
    win32_statements;
    statements;
}
但是程式碼冗長時,甚至在這個迴圈中出現不只一次的 #ifdef #else ,第二種寫法是否比較容易閱讀?
至於重複的 code 我想不是需要關心的問題,除非 source 要存在 3.5" floppy disk 上…… XD

No comments:

Post a Comment