3

我在做我的 IOS 项目时有一个疑问,为了我们的测试目的,我们在 main...

printf("start\n");
FILE *fp = fopen("/Users/gui_test/Desktop/ritun/hello_test/hello_test/expt.txt", "a + b");

int a = 5, b = 5;
int c = a + b;

fprintf(fp, "%d\t", c);
fflush(fp);

fclose(fp);

printf("end \n");

我已在 main 中注释掉以下行以测试文件写入。

return UIApplicationMain(argc, argv, nil, NSStringFromClass([ofi_video_monetAppDelegate class]));

答案已成功写入文件但两次,有人知道这是为什么吗?如果我尝试其他任何地方,除了 main() 之外,它只写一次,main 中发生了什么。

4

2 回答 2

0

请参阅此链接。它解释了 main 函数的使用。

main 是每个 C 或基于 C 的程序开始的函数。它是一个保留名称,这意味着您不能拥有名为 main 的函数。main 前面的 int 是函数返回类型的声明。

int main (int argc, const char * argv[])
{
        // memory management
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
        // printing on the log
        NSLog (@"Hello, World!");

       [pool drain];
//The final line tells the main method to return the value 0. Remember that the int the preceded main tells the system that this function will return a value. This value is 0. By convention, a return value of zero indicates that the function was successful.
       return 0;
}

另见NSAutoreleasePool

于 2012-11-20T11:53:33.017 回答
0

通过注释掉导致 main 在内部调用两次的以下行返回 0,

UIApplicationMain(argc, argv, nil, NSStringFromClass([ofi_video_monetAppDelegate class]));

我返回了 1,它工作正常,文件中有一个条目,没有重复。

于 2012-11-21T06:50:03.737 回答