"const"限定符的优点已在各种问题中进行了讨论,但这些讨论主要涉及针对无意修改和意图清晰度的失败.我想问一下,由于使用了限定符,结果程序是否有任何差异 - 特别是,是否有性能提升?
在其他一个问题中,有人指出,如果在C++中存在'const_cast'的情况下传递给具有const限定符的函数,则编译器不能使用不改变的对象的自然假设.那不是在C11中,那么const是否允许在C11中进行任何优化而没有它?
性能差异的另一种可能性是静态对象的内存布局.在只读空间中拥有对象有任何性能优势吗?这可能取决于硬件,我会对特定配置的一般见解和注释感兴趣.
编辑:这是一个非常广泛的要求,要求一个普遍的论点,断言不能有必要使用'const'的性能增益.然而,否定这一主张可能是一个相当简洁的回应.所以,更具体一点,并且不排除任何解决我的一般问题的内容,特别有用的答案形式如下:
任何以必要方式使用'const'实现性能增益的情况的示例.
关于为什么编译器由于使用'const'而无法进行优化的任何争论.这可能不是特定于硬件的,因此如果是这种情况,可能会简明扼要地给出.如果需要更具体,我最感兴趣的是在函数调用中使用'const'.
关于只读内存是否可以与静态对象一起使用以在x86-64的桌面或服务器实现中实现性能增益的任何答案.
话虽如此,我将理解最初提出的问题的最一般答案是合理的.