用c语言,并合在一起写出测试函数
时间: 2024-10-29 14:16:40 浏览: 3
C语言函数库详解(收藏版)
在C语言中,编写测试函数主要是为了验证某个功能或者模块的正确性。我们可以使用`assert()`宏来进行断言检查,当某个条件不符合预期时,程序会立即停止并显示错误信息。下面是一个简单的例子,假设我们有一个函数`swap`负责交换两个整数:
```c
#include <stdio.h>
#include <assert.h>
void swap(int* a, int* b) {
assert(a != NULL && b != NULL); // 断言指针不为NULL
int temp = *a;
*a = *b;
*b = temp;
}
// 测试函数
int test_swap() {
int x = 5, y = 10;
printf("Before swap: x = %d, y = %d\n", x, y);
swap(&x, &y);
assert(x == 10 && y == 5); // 断言交换后的结果
printf("After swap: x = %d, y = %d\n", x, y);
if (x != 10 || y != 5) { // 手动检查,如果断言未通过,再做一次检查
printf("Swap failed! Expected x=10, y=5 but got x=%d, y=%d.\n", x, y);
return 0; // 如果没通过则测试失败
} else {
return 1; // 测试成功
}
}
int main() {
if (test_swap()) {
printf("Test passed successfully!\n");
} else {
printf("Test failed.\n");
}
return 0;
}
```
在这个测试函数中,我们首先调用`swap`函数,然后用`assert`检查交换后的结果是否符合预期。如果所有断言都通过,那么测试函数返回1,代表测试成功;如果有任何一个断言失败或者手动检查的结果不符合,返回0,表示测试失败。
阅读全文