void print_time(int hour, minute)
{ printf("%d:%d\n", hour, minute);
}定义相同类型的参数这样会报错,C语言为什么要这样规定?
1 回答
Smart猫小萌
TA贡献1911条经验 获得超7个赞
因为多个变量声明是用 ;
分割的, 你可以很清楚的知道这是要声明4个变量.
int a, b;char c, d;
你也可以分辨出下面是语法错误的.
int a, b; c, d;
但是由于多个不同类型函数声明是用 ,
分割的. 如果允许合并声明, 遇到如下情况, 你语法是没有问题的, 但此处的 isHourStartFromZero 明显应该是个 boolean 值. 此时由于人为失误少写了 boolean 类型声明, 但编译器却无法帮助我们判断出错误, 这会增加代码的错误率. 而这种错误本来是应该在编码阶段就由编译器静态检查出来的.
void print_time(int hour, minute, isHourStartFromZero) { if (isHourStartFromZero) { printf("%d:%d\n", hour + 1, minute); } else { printf("%d:%d\n", hour, minute); } }
- 1 回答
- 0 关注
- 896 浏览
添加回答
举报
0/150
提交
取消