这是一个“怪异”的问题,因为它让我感到困惑。我一直在学习C,我意识到我的问题不在我的C书中。
启动某个功能时,如int main()
或void name()
,我如何知道括号中的内容......例如int main(int argc, char *argv[])
或int main()
。
这是一个愚蠢的问题,但我不知道何时在编程时使用什么。在线链接的资源会有所帮助。
谢谢,抱歉愚蠢。
答案 0 :(得分:5)
传递给函数的变量是其输入或(有时)其输出。例如,如果您想编写一个添加两个整数并返回其总和的函数,则可以定义
int sum(int m, int n) {
return m + n;
}
main()
函数是一种特殊情况,因为它对提供给程序的命令行参数进行操作。在大多数语言中,main()
采用一个字符串数组,每个字符串中的命令行只有一个字。在C中,它还需要一个整数来表示在命令行中输入的单词数。
答案 1 :(得分:4)
在您关于main()
的特定问题中,当您想要引用传入的命令行参数时,您将需要括号内的参数。您可能会对声明函数的不同方法感到困惑。作为初学C程序员,您应该始终使用int func(int a, int b)
在同一行上声明返回类型,函数名称,参数和参数类型。不要让其他语法混淆你 - 大多数是出于历史原因,当你知道足够的回答知道他们为什么在那里时,你就会知道自己能够回答这个问题:)
答案 2 :(得分:1)
即使正确的签名是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
中显示任何有意义的值。