我总是不确定,在C++中,restrict关键字是什么意思?
是否意味着赋予函数的两个或更多指针不重叠?还有什么意思?
我找不到太多的信息const_cast
.我能找到的唯一信息(在Stack Overflow上)是:
将
const_cast<>()
用于添加/删除变量的常量(岬)(或挥发性岬).
这让我很紧张.可能const_cast
会导致意外行为?如果是这样,什么?
或者,什么时候可以使用const_cast
?
我知道它提高了可读性并使程序不易出错,但它提高了多少性能?
在旁注中,参考和const
指针之间的主要区别是什么?我会假设它们以不同的方式存储在内存中,但是如何呢?
在什么情况下需要使变量恒定?
如果您希望变量始终保持相同的值,就可以不更改它吗?
我理解 - const
限定数据类型的行为.不过,我很好奇,如果由于合格变量的过度或不足而导致任何表现获得或损失const
.我特别想到在隔离的代码块中声明和使用的变量.例如,类似于:
const qreal padding = CalculatePadding();
const QSizeF page_size = CalculatePagePreviewSize(padding);
const QRectF content_rect = CalculatePagePreviewContentRect(page_size);
const QList<QRectF> pages = renderer.BuildPrintPages(printer_, map_scene_);
const QFont page_number_font = CalculatePageNumberFont();
const QFontMetrics metrics(page_number_font);
Run Code Online (Sandbox Code Playgroud)
假设我const
在所有这些方面只需要合格的方法(以及更多.)在声明它们时是否有任何性能提升const
?或者,相反,这实际上是否会损害性能?
我很好奇两个运行时性能(我猜这没有区别,因为const
它只是一个编译时检查 - 有人可以确认吗?)和编译时性能.我对c ++没有足够的经验来感受这一点,并且我想知道const
当所有其他事情(可维护性等)相等时我是否应该在过度或不足的情况下犯错.
好吧,我没有意识到这const
可能像指针一样令人困惑.有人可以在步骤中解释下面的代码到底做了什么const
?
const int*const Method3(const int*const&)const;
Run Code Online (Sandbox Code Playgroud)
即使对于非新手程序员来说也是如此令人困惑.
c++ ×6
const ×3
pointers ×2
c ×1
casting ×1
const-cast ×1
constants ×1
performance ×1
variables ×1