本主题适用于:
| 版本 | Visual Basic | C# | F# | C++ | Web Developer | 
|---|---|---|---|---|---|
| 学习版 | .gif) | .gif) | .gif) | 仅限本机 | .gif) | 
| 专业版、高级专业版和旗舰版 | .gif) | .gif) | .gif) | 仅限本机 | .gif) | 
可以使用断言语句检查操作的结果。 断言对于测试快速直观检查时结果不明显的操作最有价值。
例如,研究一下以下代码,这段代码根据 mols 所指向的链接列表的内容来更新 iMols 变量:
/* This code assumes that type has overloaded the != operator
 with const char * 
In addition, it also assumes that H2O is somewhere in that linked list. 
Otherwise we'll get an access violation... */
while (mols->type != "H2O")
{
 iMols += mols->num;
 mols = mols->next;
}
ASSERT(iMols<=numMols); // MFC version
_ASSERT(iMols<=numMols); // CRT version
由 iMols 计数的分子数必须始终小于或等于分子总数 numMols。 对循环的直观检查并不说明这一定为真,因此在循环后使用一条断言语句来测试该条件。