为什么会这样?当我发明“const”(最早是被命名为“readonly”且有一个叫“writeonly”的对应物)时,我让它在前面和后面都行,因为这不会带来二义性。当时的C/C++编译器对修饰符很少有强加的语序规则。
我不记得当时有过什么关于语序的深思熟虑或相关的争论。一些早期的C++使用者(特别是我)当时只是单纯地觉得const int c = 10;要比int const c = 10;好看而已。或许,我是受了这件事实的影响:许多我早年写的例子是用“readonly”修饰的,而readonly int c = 10;确实看上去要比int readonly c = 10;舒服。而最早的使用“const”的C/C++代码是我用全局查找替换功能把readonly换成const而来的。我还记得和几个人讨论过关于语法“变体”问题,包括Dennis Ritchie。不过我不记得当时我们谈的是哪几种语言了。
另外,请注意:如果指针本身不可被修改,那么const应该放在“*”的后面。例如: Q: 我该把const写在类型前面还是后面?
const int a = 1; // ok
int const b = 2; // also ok
int *const p1 = q; // constant pointer to int variable
int const* p2 = q; // pointer to constant int
const int* p3 = q; // pointer to constant int
原文地址:http://www.research.att.com/~bs/bs_faq2.html#constplacement
正文
[转] 我该把const写在类型前面还是后面?2007-11-17 18:32:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/lym51/31002.html
A: 我是喜欢写在前面的。不过这只是个人口味的问题。“const T”和“T const”均是允许的,而且它们是等价的。例如:
我想,使用第一种写法更合乎语言习惯,比较不容易让人迷惑 :O)
阅读(2985) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论