【发布时间】:2017-04-26 19:38:10
【问题描述】:
我正在编写 C++ 代码,但我不确定 a[set][i]++; 的作用。我假设该数组中的值增加了 1,但我不确定。
另外,代码中assert(0);的作用是什么?
感谢您的帮助!
代码块是:
for (i=0; i<1S; i++)
{
if (a[637][i] < a[637][15])
{
a[637][i]++;
if (a[637][i] == 15)
assert(0);
}
}
a[637][15] = 0;
编辑:
对不起,我忘了提及背景。a 的定义是 uint32_t a[2048][16];so 637 和 i 是来自特定循环的值,以便将它们与另一个二维数组进行比较,然后选择要驱逐的行。这是针对缓存替换策略的,但我只是对这些情况感到好奇。谢谢!
【问题讨论】:
-
我建议解雇写这篇文章的人。
-
Assert 用于评估方程式并在失败时中止有或没有消息。 msdn.microsoft.com/en-us/library/9sb57dw4.aspx.
-
assert(0)与assert(false)相同,这意味着程序(处于调试模式)将在到达该语句时停止。所以它的意思是“这不应该发生”: -
@Caribou 不,它不会停止编译。它在运行时中止程序。
-
请注意,您可以将该特定语句重写为
assert(a[637][i] != 15);。
标签: c++ arrays multidimensional-array assert