没有明显好处的功能声明

Function Declaration without apparent benefit

我目前正在完成一个现有项目并得出以下代码片段:

int main(int argc, char** argv);

int main(int argc, char** argv)
{
    ...
}

基本上就是整个文件。现在,据我了解,第一个函数声明根本没有意义:提供的行之间没有其他函数试图调用 main。

现在我的问题是:有没有我不知道的情况会从第一个声明中受益(可能与其他文件相互依赖)?还是可以安全删除?由于工程量大,目前还不能真正测试,也很好奇。

第一行就是你所说的一个prototype/signature,代表函数的签名:名称,参数,return类型。 我认为 here 可以回答您的问题,但我会尽量简短地说一下。 第二个是函数的定义,也就是你写函数代码的地方。

原型告诉"hey here's a function, it's made this way, takes these parameters and I'm going to use it in my code. You'll find its implementation somewhere in the code, but consider it existing and working"。

定义告诉"hey my function works this way"。

通常您会发现将原型写在某个地方,并将相关定义写在不同的文件中,以保持代码整洁。

原型不是强制性的,它只是在实现函数之前定义和使用函数的一种方式(说的很糟糕),但是如果没有原型你就必须直接定义它,这对代码的可读性、可维护性和可理解性。

就是说,我认为删除第一行非常安全,因为 main() 是立即定义的,它是您程序的 entry point。它没有在代码中明确调用,因为它是在您启动软件时调用的。