C 知道如何在正确的时间定义函数

C 知道如何在正确的时间定义函数,c,function,parameters,C,Function,Parameters,这是一个“奇怪”的问题,因为它让我困惑。我一直在学习C,我意识到我有一个问题不在我的C书中 启动函数时,如int main()或void name(),我如何知道括号中应该放什么。。。像intmain(intargc,char*argv[])或只是intmain() 这是一个愚蠢的问题,但我不知道在编程时何时使用what。在线链接的资源将很有帮助 谢谢,很抱歉这么愚蠢。在您关于main()的特定问题中,当您想要引用传入的命令行参数时,需要在括号中插入参数。您可能会对声明函数的不同方式感到困惑。作

这是一个“奇怪”的问题,因为它让我困惑。我一直在学习C,我意识到我有一个问题不在我的C书中

启动函数时,如
int main()
void name()
,我如何知道括号中应该放什么。。。像
intmain(intargc,char*argv[])
或只是
intmain()

这是一个愚蠢的问题,但我不知道在编程时何时使用what。在线链接的资源将很有帮助


谢谢,很抱歉这么愚蠢。

在您关于
main()
的特定问题中,当您想要引用传入的命令行参数时,需要在括号中插入参数。您可能会对声明函数的不同方式感到困惑。作为初级C程序员,您应该始终使用
intfunc(inta,intb)
在同一行声明您的返回类型、函数名、参数和参数类型。不要让其他语法迷惑你——大多数语法都是出于历史原因而存在的,当你知道它们存在的原因时,你就可以自己回答这个问题了:)

传递给函数的变量是它的输入或(有时)它的输出。例如,如果要编写一个函数,将两个整数相加并返回其和,则可以定义

int sum(int m, int n) {
  return m + n;
}

main()
函数是一种特殊情况,因为它对提供给程序的命令行参数进行操作。在大多数语言中,
main()
接受一个字符串数组,每个字符串中有一个来自命令行的单词。在C语言中,它还接受一个整数,该整数表示在命令行中输入的字数。

即使正确的签名是
main(int-argc,char*argv[])
,但看到
int-main()
也不奇怪。这是因为C对检查外部函数的签名并不特别严格(这是不可能的;当您在C中调用外部函数时,您只是给出一个指向该函数的指针和一个参数列表;它无法真正检查您是否按照最初定义的方式使用该函数)

因此,这也会起作用:

int main(int argc) { return 0; }
即使这样也会:

int main(int argc, char *argv[], int foo) { return 0; }

只是不要期望在
foo

中显示任何有意义的值。这是一个非常基本的问题,但一点也不愚蠢。不要为尝试学习新东西而道歉!