/* * demo_versions/kr_implicit_int.c * -------------------------------------------------------------------------- * 演示:K&R 隐式 int(C89 允许省略类型)。 * * 来源:wiki 块 [58954439:14]「3.4 C++中所有的变量和函数都必须有类型」原意是 * 演示 C89 允许「无类型」函数与参数,C99 起被废除。 * * 验证(用 tools/std_probe.py): * gcc -std=c89 → PASS(隐式 int 合法) * gcc -std=c99 → WARNING(隐式 int 已弃用) * gcc -std=c17 → ERROR (隐式 int 非法) * * 运行:tools/std_probe.py --lang c --file tools/demo_versions/kr_implicit_int.c * -------------------------------------------------------------------------- */ /* C89:函数返回类型可省略(隐式 int);参数可只写名字(隐式 int)。 */ fun1(i) { /* 等价于 int fun1(int i) */ return i + 1; } fun2(p) /* 等价于 int fun2(char* p) —— 但隐式 int 下 p 被当作 int */ char* p; { return 0; } int main(void) { return fun1(41); }