消息系统应该使用枚举,字符串还是#define?

时间:2011-06-18 03:30:40

标签: c++

就游戏的消息系统而言,或者一般来说,在C ++中,这三者中的哪一个更好? enum感觉最好,但我认为这意味着新课程无法真正做出贡献。字符串似乎很适合脚本优势,但我担心开销。整数定义感觉有点Cish。

由于

4 个答案:

答案 0 :(得分:3)

为什么不制作Message类?这可能包含一个用于标识消息的字符串,一个整数id等。这样您就可以获得两个系统的最佳效果。你甚至可以为不同类型的消息设置子类。

答案 1 :(得分:2)

这一切都取决于你要做什么,消息中的数据类型(变量与固定长度),消息的频率,消息的大小等。例如,我看过使用的消息系统structunion打包低级别邮件。

没有一种正确的方式可以做到这一点,至少没有更多信息。

答案 2 :(得分:0)

National Instruments Libraries和许多其他板级接口程序使用#define来解决行业标准错误。

答案 3 :(得分:0)

在C ++中,对于简单常量,请远离#define。它不能很好地与命名空间一起使用。相反,在适当的命名空间中使用enum或仅const变量。这些中的任何一个都是类型安全的并且适当地限定范围。

只有#define可以做的事情,但是当有另一种方式时可以避免它。