函数原型在main中声明 - 最佳实践?

ant*_*009 9 c

这是在主函数内部声明函数原型的好方法吗?

我正在看一个C教程,我认为已经过时了.但是,他们在main中声明了函数原型.我通常在主要之前宣布在外面.

#include <stdio.h>

int main ()
{
    char myname [30];
    int theage;
    int getage ();

    printf ("\nEnter your name:");
    gets (myname);
    theage = getage ();
    printf("\n AGE = %d and NAME = %s", theage, myname);
    return 0;
}

int getage ()
{
    int myage; /* local to only getage() */

    printf ("\nEnter your age: ");
    scanf ("%d",&myage);
    return (myage);
}
Run Code Online (Sandbox Code Playgroud)

小智 16

我个人会说"不",原因如下:

  • 它使主要代码更长
  • 它可能会让新手感到困惑,因为他认为这个功能是由main主导的
  • 在实际代码中,我通常会将函数放在不同的编译单元中并#include其头文件


ral*_*nja 5

我还会说,如果您开始在整个代码中使用显式声明,那么当您调用的函数突然改变其签名时,您肯定会得到未解析的外部因素.如果在一个头文件中有一个声明,则只需在函数更改时更改一个声明.

但是,由于以下原因,我会说是的:如果您只是编写一个仅为一次性使用而编写的简单测试方法,即如果您想要快速测试某些内容然后立即丢弃该功能.那么只要在你想要打电话之前就输入一个声明就可以了.

对于生产代码 - >不不不!:)