整理以前的笔记本,看到几个 C/C++ 问题的记录,感觉都有点忘了,看来编程这个东西也不外乎“熟尔”。
- F : 如何判断是否支持 C99Q :
__STDC_VERSION__ >= 199901L
sizeof
和extern
的问题定义了一个extern int array[];
时,不能使用sizeof(array)
,因为sizeof
是编译阶段的,而编译阶段array
的类型的不完整的,无法得到大小。- 一个最简单的 C 语言单元测试框架(是的,只有 3 行),出自 JTN002 – MinUnit — a minimal unit testing framework for C。
/* file: minunit.h */
#define mu_assert(message, test) do { if (!(test)) return message; } while (0)
#define mu_run_test(test) do { char *message = test(); tests_run++; \
if (message) return message; } while (0)
extern int tests_run;
其实是想说纯C的测试框架,特别是支持vs的,没有见过什么靠谱的。国人的一个 lcut 看起来还蛮活跃的,有时间可以看看。要是 C++ 的话还是比较喜欢 Google Test。