风格问题

时间:2010-04-05 15:02:11

标签: c++ coding-style

你会写一些像:

enum XYZ_TYPE {X=1, Y=2, Z=3};

我看到了它,后缀_TYPE使我在枚举上下文中感到困惑。有一个很强的前景,因为我并不聪明。

5 个答案:

答案 0 :(得分:2)

我不会那样写,但这不是一个成败的情况。用拳头滚动并保存你真正应得的东西的挫败感,比如for-case loops。 :)

答案 1 :(得分:2)

我已经有一个首选的约定来区分类型和其他标识符,这是我使用CamelCase为类型的初始资本和其他的小写。常量可以是全部大写,包括枚举值。

但是,带有任何大小写的“XYZ_TYPE”对于枚举来说是一个糟糕的名称。我会使用enum Color {RED=1, GREEN=2, BLUE=3};enum FuzzyBool {yes=1, no=2, filenotfound=3};或其他类似内容。不是REDGREENBLUE_TYPE。

我认为一般来说,如果您的名字选好,那么您不需要_TYPE后缀。如果你的名字没有被很好地选择,并且公平地说它可能很难,那么也许你需要它来区分类型和那种类型的对象。也许。但我更喜欢使用案例。

答案 2 :(得分:1)

XYZ_TYPE只是遵循C ++变量命名约定的另一个名称,但我更倾向于将所有大写名称用于预处理器定义。

答案 3 :(得分:1)

该后缀没有任何问题,因为枚举是他们自己的类型,它们根本不是类型安全的。

XYZ_TYPE myXYZ = X;
if(myXYZ == 1) { } //This is what I meant by not strongly typed.

C ++ 0x修复枚举,因此它们是强类型的。

只需遵循编码标准中有关枚举类型名称的内容即可。最后,只要它与您的编码标准一致,它就没关系,并且它在逻辑上是合理的。

答案 4 :(得分:0)

我们只需将其称为XYZ,使其符合我们在CamelCase中使用大写字母命名类型的约定。枚举值为eXeYeZ,遵循使用前导小写字母命名CamelCase中的值和变量的约定,以及以{开头的所有枚举值的约定{1}}(常量以e开头,并且通常没有其他前缀。我们使用一组非常有限的Light Side Hungarian。)

与所有会议一样,您的里程可能会有所不同。但是使用k的后缀类型似乎是一种初学者的技术,它对于它所花费的视觉混乱几乎没有什么价值。