2011-06-18 67 views
1

對於遊戲的消息系統,或者一般來說,在C++中,哪三個更好?一個枚舉感覺最好,但我認爲這意味着新的類不能真正貢獻。字符串對於腳本優勢看起來不錯,但我擔心的是開銷。 Integer定義了一下Cish。消息系統應該使用枚舉,字符串還是#define?

感謝

+4

你能更多...具體嗎? 「消息系統」是什麼意思?一種在玩家之間傳遞消息的方式?線程之間?在電腦之間? – Nemo

+0

@Nemo我在問我應該如何定義它們,比如WM_KEY_DOWN – jmasterx

+3

我在問你「消息系統」是什麼意思。什麼類型的消息?在哪些實體之間?你的問題目前非常模糊以至於毫無意義......你需要詳細描述你的具體應用。 – Nemo

回答

2

這一切都取決於你想要做什麼,消息中的數據類型(變量與固定長度),消息的頻率,消息的大小等。例如,我已經看到消息系統使用structunion打包低級別消息。

沒有人這樣做的方法,至少不是沒有更多的信息。

3

你爲什麼不使一個Message類?這可能包含一個字符串來標識消息,一個整數ID等。這樣你就可以得到兩個系統中最好的。你甚至可以有不同類型的消息的子類。

+0

是的 - 每次我嘗試使用結構體/聯合體時,最終都會發現我需要一種方法,如果只是爲了調試目的而使信息變得簡單化。雖然在開發過程中定義新消息時,讓它們保持最新是一件很痛苦的事情,但是對於我來說,標識消息的枚舉成員對於我來說是很好的,還有一系列的const字符串可以使它們變得簡單。 –

0

National Instruments庫和許多其他板級接口程序使用#define進行行業標準錯誤。

0

在C++中,對於簡單常量,請遠離#define。它不能很好地與名稱空間配合使用。相反,在適當的名稱空間中使用enum或僅使用const變量。這些都是類型安全的並且範圍適當。

有一些東西只有#define可以做,但避免它有另一種方式。