C++ 的 assert
函数主要用于在开发和调试阶段检查程序的假设和不变式。如果断言的条件为假,程序会终止执行,并显示一条错误消息。这有助于识别代码中的错误或不一致之处。以下是一些适合使用 assert
的情况:
void processNumber(int num) {
assert(num >= 0 && "Number must be non-negative");
// ...
}
void printArray(int arr[], int size) {
assert(size > 0 && "Array size must be positive");
for (int i = 0; i < size; ++i) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
}
class MyClass {
public:
MyClass() : data(0) {}
void setData(int value) {
assert(!data && "Data must be uninitialized before setting a new value");
data = value;
}
private:
int data;
};
void processFile(const char* filename) {
FILE* file = fopen(filename, "r");
assert(file && "Failed to open file");
// ...
fclose(file);
}
需要注意的是,assert
函数仅在调试模式下有效。在发布版本中,assert
语句会被禁用,因此不建议在其中执行关键操作。在这些情况下,应使用异常处理或其他错误处理机制。