對於遊戲的消息系統,或者一般來說,在C++中,哪三個更好?一個枚舉感覺最好,但我認爲這意味着新的類不能真正貢獻。字符串對於腳本優勢看起來不錯,但我擔心的是開銷。 Integer定義了一下Cish。消息系統應該使用枚舉,字符串還是#define?
感謝
對於遊戲的消息系統,或者一般來說,在C++中,哪三個更好?一個枚舉感覺最好,但我認爲這意味着新的類不能真正貢獻。字符串對於腳本優勢看起來不錯,但我擔心的是開銷。 Integer定義了一下Cish。消息系統應該使用枚舉,字符串還是#define?
感謝
這一切都取決於你想要做什麼,消息中的數據類型(變量與固定長度),消息的頻率,消息的大小等。例如,我已經看到消息系統使用struct
和union
打包低級別消息。
沒有人對這樣做的方法,至少不是沒有更多的信息。
你爲什麼不使一個Message類?這可能包含一個字符串來標識消息,一個整數ID等。這樣你就可以得到兩個系統中最好的。你甚至可以有不同類型的消息的子類。
是的 - 每次我嘗試使用結構體/聯合體時,最終都會發現我需要一種方法,如果只是爲了調試目的而使信息變得簡單化。雖然在開發過程中定義新消息時,讓它們保持最新是一件很痛苦的事情,但是對於我來說,標識消息的枚舉成員對於我來說是很好的,還有一系列的const字符串可以使它們變得簡單。 –
National Instruments庫和許多其他板級接口程序使用#define進行行業標準錯誤。
在C++中,對於簡單常量,請遠離#define
。它不能很好地與名稱空間配合使用。相反,在適當的名稱空間中使用enum
或僅使用const
變量。這些都是類型安全的並且範圍適當。
有一些東西只有#define
可以做,但避免它有另一種方式。
你能更多...具體嗎? 「消息系統」是什麼意思?一種在玩家之間傳遞消息的方式?線程之間?在電腦之間? – Nemo
@Nemo我在問我應該如何定義它們,比如WM_KEY_DOWN – jmasterx
我在問你「消息系統」是什麼意思。什麼類型的消息?在哪些實體之間?你的問題目前非常模糊以至於毫無意義......你需要詳細描述你的具體應用。 – Nemo