c – 在什么情况下你会声明一个非引用的非指针类型函数参数const
发布时间:2020-12-16 09:29:52 所属栏目:百科 来源:网络整理
导读:我有以下函数声明: void fn(int); 该函数具有单个整数类型参数.现在,我可以通过传递非const或const积分对象来调用此函数.在任何一种情况下,此函数都会将对象复制到其本地int参数.因此,对此参数的任何修改都将是函数的本地修改,并且不会以任何方式影响调用方
我有以下函数声明:
void fn(int); 该函数具有单个整数类型参数.现在,我可以通过传递非const或const积分对象来调用此函数.在任何一种情况下,此函数都会将对象复制到其本地int参数.因此,对此参数的任何修改都将是函数的本地修改,并且不会以任何方式影响调用方的实际参数.现在我的问题是在哪种情况下我会将这个单个int参数声明为const类型?我认为不需要如下声明此功能. void fn(const int); 这是因为参数无论如何都要通过值传递,并且函数在任何情况下都不能修改参数.据我所知,通过声明参数常量,函数无法在其体内修改它.但是,即使函数修改也没有缺点,因为参数是函数的局部参数. 解决方法
你对调用者来说没有区别 – 它只对函数内部有用.我喜欢随时添加const.当我正在编写函数时,我在想“我想要这个参数,但无意修改它(甚至只是在本地)”,编译器会让我诚实.
此外,在某些情况下,如果编译器知道变量是const(如在循环边界中),则编译器可以进行更多优化. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |