为了账号安全,请及时绑定邮箱和手机立即绑定

C语言中为什么定义变量时可以把相同类型的变量列在一起,而定义参数却不可以?

C语言中为什么定义变量时可以把相同类型的变量列在一起,而定义参数却不可以?

C
收到一只叮咚 2018-12-18 19:46:37
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);
    }
}


查看完整回答
反对 回复 2018-12-18
  • 1 回答
  • 0 关注
  • 896 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信