typedef enum { FAILED = 0, PASSED = !FAILED } TestStatus; #define countof(a) (sizeof(a) / sizeof(*(a)))
时间: 2024-04-18 21:27:32 浏览: 139
这段代码定义了一个枚举类型 `TestStatus` 和一个宏 `countof`。
1. `TestStatus` 是一个枚举类型,包含两个枚举常量:`FAILED` 和 `PASSED`。`FAILED` 的值为 0,`PASSED` 的值为 `!FAILED`,也就是非零。通常情况下,`FAILED` 代表测试失败,`PASSED` 代表测试通过。
2. `countof` 是一个宏定义,用于计算数组的元素个数。它接受一个数组作为参数,并返回该数组的元素个数。具体实现是通过将整个数组的大小(以字节为单位)除以单个数组元素的大小(以字节为单位)来计算得到。
例如,如果有一个数组 `int arr[5];`,使用 `countof(arr)` 将返回 5,表示该数组有 5 个元素。
这个宏定义可以方便地计算数组的长度,避免手动维护数组长度的繁琐和出错。但需要注意的是,该宏只适用于静态数组,对于指针指向的动态分配数组或动态分配的内存块则无法正确计算元素个数。
阅读全文