【问题标题】:C++ Type casting order / Proper code-formatting? [duplicate]C++ 类型转换顺序/正确的代码格式? [复制]
【发布时间】:2010-07-25 17:48:37
【问题描述】:

可能的重复:
Declaring pointers; asterisk on the left or right of the space between the type and name?
what is the difference between const int*, const int * const, int const *

我一直想知道:

float const &var
const float &var

其中哪一种是编写代码的正确方法? (包括上面的例子):

float const& var
float const &var
float const & var

还有指针:

float * var
float *var
float* var

我总是把特殊标记放在变量名之前,感觉最合乎逻辑。这是正确的方法吗?

【问题讨论】:

标签: c++ code-formatting


【解决方案1】:

所有都同样有效。没有一种正确的方法;你应该做任何你认为最易读的事情(对于你自己的代码)或遵循流行的风格(如果与其他人一起工作)。

根据我的经验,将const 放在首位(例如const float & 而不是float const &)更为常见。

&*的定位取决于程序员;根据我的经验,似乎没有比其他选择更常见的了。

【讨论】:

    【解决方案2】:

    关于您的第一个问题: 参考这个: http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.8

    const X& x 和 X const& x 是 等价的。

    关于指针:

    float *var
    

    是最好的方法。

    原因是当你有多个指针变量时它不会给人错误的印象。

    例如:

    float *var, *foo, *bar;
    

    如果你想要 3 个指针变量是正确的。

    与可能错误的代码相比:

    float* var, foo, bar;
    

    【讨论】:

    • 我说不要在同一行上指向多个声明。或者知道自己在做什么。
    • 你可以和float* var,* foo,* bar;一起吃蛋糕 :)
    • 好吧,我们可以针对个人对编码风格的偏好进行圣战。这只是我的看法。感谢您的意见。
    • 我们可以根据个人喜好进行圣战......不在 Stack Overflow,我们不会。
    【解决方案3】:

    您暴露的第一个代码 sn-p 提醒了 const 的正确性:http://en.wikipedia.org/wiki/Const-correctness#C.2B.2B_syntax。 在其他两个代码中,sn-ps 的任何变体都具有相同的效果。 有关指针和 const 关键字的更多信息,另请阅读以下文档:http://www.cplusplus.com/doc/tutorial/pointers/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 2019-08-22
      相关资源
      最近更新 更多