【发布时间】:2018-04-21 12:28:37
【问题描述】:
我正在尝试准确了解如何使用流程。更具体地说,运行什么代码,什么不运行。我已经编写了一些示例代码来尝试解释我不理解的内容。
int main(){
//Program code part 1
int myfun(){
if(fork()>0){
//Program code part 2
}
return 0;
}
//Program code part 3
}
据我了解,父进程应该执行代码部分 1 和 3,并在 myfun() 中返回 0。孩子应该执行第2部分,绝对不是第1部分。它会执行第3部分吗?因为它是在 myfun() 的范围内创建的,所以我认为不会,但我真的很想在弄乱我的程序之前确定一下。
【问题讨论】:
-
myfun在main内部定义。我相信 gcc 有一个扩展来支持这个(它不是标准的),但无论哪种方式你都不会调用那个函数。 -
你已经定义了
myfuninsidemain- 你不能在 C 中这样做。你能 edit 澄清这个问题吗?main是否调用myfun? -
C 不允许嵌套函数定义。
-
您的代码无效。 C 不允许您将一个函数的定义(即
myfun())嵌套在另一个函数的定义中(main())。在这种情况下,我们只能说你错了:你提供的代码甚至都不会编译,更不用说运行了,不依赖扩展。 -
哇!那是我们四个人,大约一分钟后都发表了相同的评论。