我应该将“const”放在类型之前还是之后?


  
我把它放在前面,但那仅仅是个人爱好问题。“const T”和“T const”总是都被允许的,而且是等效的。例如: 
  
    const int a = 1;    // ok 
    int const b = 2;    // also ok 
  
我猜想第一种版本可能会让少数(更加固守语法规范)的程序员感到迷惑。 
  
为什么?当我发明“const”(最初的名称叫做“readonly”,并且有一个对应的
“writeonly”)的时候,我就允许它出现在类型之前或之后,因为这样做不会带来任何
不明确。标准之前的 C和C++规定了很少的(如果有的话)特定的顺序规范。 
  
我不记得当时有过任何有关顺序问题的深入思考或讨论。那时,早期的一些使用者——特别
是我——仅仅喜欢这种样子: 
  
    const int c = 10; 
  
看起来比这种更好: 
  
    int const c = 10; 
  
也许我也受了这种影响:在我最早的一些使用“readonly”的例子中 
  
    readonly int c = 10; 
  
比这个更具有可读性: 
  
    int readonly c = 10; 
  
我创造的那些最早的使用“const”的(C 或 C++)代码,看来已经在全球范围内取代了
“readonly”。 
  
我记得这个语法的选择在几个人——例如 Dennis Ritchie——当中讨论过,但我不记得
当时我倾向于哪种语言了。 
  
注意在固定指针(const pointer)中,“const”永远出现在“*”之后。例如: 
  
    int *const p1 = q;  // 指向 int变量的固定指针 
    int const* p2 = q;  //指向int 常量的指针 
    const int* p3 = q;  //指向int 常量的指针 

posted on 2007-03-24 09:44 阿刚 阅读(213) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2007年3月>
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567

统计

常用链接

留言簿(1)

随笔档案

文章档案

C++ BBS

C++ FAQ

C++ WEBSITE

搜索

最新随笔

最新评论

阅读排行榜

评论排行榜