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

void print_time(int hour, minute)
{    printf("%d:%d\n", hour, minute);
}

定义相同类型的参数这样会报错,C语言为什么要这样规定?


收到一只叮咚
浏览 897回答 1
1回答

Smart猫小萌

因为多个变量声明是用 ; 分割的, 你可以很清楚的知道这是要声明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);     } }
打开App,查看更多内容
随时随地看视频慕课网APP