将基本类型的函数参数修饰为const有什么意义?

jiandingzhe 2012-09-19 09:22:03
比如:

void my_func( const float arg ) {

}


基本类型是按值传递,即使修改了参数也不会对外界造成任何影响。在上面修饰const有啥意义?
...全文
283 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
thefutureisour 2012-09-19
  • 打赏
  • 举报
回复
虽然没有什么实际的功能,但是它做出了一个不修改实参的承诺。
在能使用const的地方,尽量使用const,这样编译器会帮你检查错误的。
shiter 2012-09-19
  • 打赏
  • 举报
回复
看看大牛么怎么说的...
baichi4141 2012-09-19
  • 打赏
  • 举报
回复
这种使用方式没有优化
const在编译之后,跟没有const一模一样

多写const的理由在于限制程序员,明确函数参数意义与防止前后不一误写代码等笔误
你想不写就可以不写,功能上没影响,代码风格自己定
yisikaipu 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
引用 3 楼 的回复:
限制形参在函数内部被无意改动也是有实际意义的,而且当然有利于编译器优化


++[/Quote]

呵呵,不过我确实也不知道这种情况究竟能怎么优化

主要还是在语法上限定改动吧
mujiok2003 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
限制形参在函数内部被无意改动也是有实际意义的,而且当然有利于编译器优化
[/Quote]

++
yisikaipu 2012-09-19
  • 打赏
  • 举报
回复
限制形参在函数内部被无意改动也是有实际意义的,而且当然有利于编译器优化
jiandingzhe 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

没有实际意义
void my_func( const float arg )
{
arg = 8.0; /* 这样会报错, 如果没有const 这句是可以的 */
}
[/Quote]
能帮助编译器做某种神秘的优化吗?
mymtom 2012-09-19
  • 打赏
  • 举报
回复
没有实际意义
void my_func( const float arg )
{
arg = 8.0; /* 这样会报错, 如果没有const 这句是可以的 */
}

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧