功能声明没有明显的好处

时间:2017-10-16 09:50:55

标签: c++ function-declaration

我目前正在通过现有项目工作,并转到以下代码段:

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

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

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

现在我的问题是:是否有任何我不知道的情况会从第一个声明中受益(可能与其他文件相互依赖)?还是可以安全删除?由于项目的规模,我目前无法对其进行测试,而且我很好奇。

1 个答案:

答案 0 :(得分:1)

第一行是您所谓的原型/签名,它代表函数的签名:名称,参数,返回类型。 我认为here可以回答你的问题,但我会尝试简短地说一下。 第二个是函数的定义,您可以在其中编写函数的代码。

原型告诉“嘿,这是一个函数,它是这样做的,采用这些参数,我将在我的代码中使用它。你会在代码中找到它的实现,但考虑它存在和工作”

定义告诉“嘿,我的功能就是这样”。

通常,您会发现在某处编写原型很有用,并且为了清洁代码而在不同文件中编写相对定义。

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

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