很抱歉,如果我对这个问题感到愚蠢,但我想加强理解并清除我对用户定义函数的任何误解。
“案例:” 我有两个函数(可以是void或int),我将它们称为function1和function2。 我将它们放在一个将被其他程序调用的文件中。 我将function1作为在另一个程序中调用的void函数,并且在程序结束之前一直被调用(当function1运行时,function2不会运行)。
Function2必须由另一个程序(对于function1不是相同的程序)执行,对function2执行(在这种情况下,function1不能运行)。 Function2可以是int或void函数。
我知道标准程序会将它们放在我的主函数中,因为这个程序只会调用main。 main将按照放置的函数的顺序运行(例如,function1将先运行,然后运行function2)
例如
#include<stdio.h>
#include<stdlib.h>
void function1(....)
int function2(...)
void function1(intA,intB,struct.....)
{
...Conditions, loops, whatever
}
int function2()
{
..........
return(some value)
}
在这部分中,我将主要在底部
int main(int argc, char *argv[])
{
function1();
int A;
A = function2();
....
}
我认为我会使用if中的else条件来使“Case:”成为可能。
这个示例代码是否会像我在Case中的顶部提到的那样运行:(使用if else条件)?如果没有,我有什么困惑? c中的示例代码也非常有用,并且有明确的解释。
请告诉我,我的解释或问题是否有些混淆。我会尽力说清楚。
答案 0 :(得分:1)
如果只想调用一个函数,请使用通过argv / argc获得的命令行参数。
int main(int argc, char *argv[])
{
if (argc != 2) return -1; // zero or 2+ commandline arguments
if (0 == strcmp(argv[1], "function1"))
function1();
else if (0 == strcmp(argv[1], "function2"))
function2();
else { return -1; /* error */ }
return 0;
}
幕后发生的事情(在调用main()之前),部分列表:
所有这些工作都是为了从程序中抽象出OS。以上流程严重依赖操作系统,大多数开发人员都不感兴趣。如果您是(非常)高级C程序员,或者您对此流程感兴趣,那么您可以自己阅读。
main()原型由C标准定义。实际上有几种法律原型可供选择。编译器/链接器将选择您实现的内容。