正文

[转] 我该把const写在类型前面还是后面?2007-11-17 18:32:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lym51/31002.html

分享到:

 

Q: 我该把const写在类型前面还是后面?

A: 我是喜欢写在前面的。不过这只是个人口味的问题。“const T”和“T const”均是允许的,而且它们是等价的。例如:
	const int a = 1;	// ok
	int const b = 2;	// also ok
 
我想,使用第一种写法更合乎语言习惯,比较不容易让人迷惑 :O)

为什么会这样?当我发明“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应该放在“*”的后面。例如:

	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

阅读(2985) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册