你课本中写的是对的!C 标准规定,函数如果不需要参数,参数列表中应该写上 void。 参数列表留空并不表示函数无参数,而是表示函数的参数个数未指定,并且编译器不会对调用参数进行类型检查,这是有隐患的!事实上参数留空这种写法只应存在于 C89 之前的很老的 C 代码中。 虽然这么写不算不合语法,但其是不符合程序员意图且易出错的写法,应该避免。至于 main 函数,C 标准规定 main 函数原型应该是以下形式:不需要使用参数时 int main (void)需要使用参数时 int main (int argc, char *argv[]) 或 int main (int argc, char **argv) *这两种写法是等价的*其实就是说不需要参数时,main函数的参数列表里也要写 void。吐槽:不知道你的同学是从哪里道听途说的...其实让我很惊讶的是,你的课本中对此的描述非常正确,这很赞! 事实上我见过太多的国内教材都写得一塌糊涂...也许这说明你校的教学水平不错,要好好学啊!