Tag: main

C / C ++主函数的参数在哪里?

在C / C ++中,主函数接收char*types的参数。 int main(int argc, char* argv[]){ return 0; } argv是一个char*数组,并指向string。 这些string在哪里? 他们在堆,堆栈还是其他地方?

这个C程序如何编译和运行两个主要function?

今天,在一个定制库的同时,我发现了一个奇怪的行为。 一个静态库代码包含一个debuggingmain()函数。 它不在#define标志内。 所以它也存在于图书馆里。 它被用来链接到另一个包含真正main() 。 当它们都链接在一起时,链接器没有为main()抛出多重声明错误。 我想知道这是怎么发生的。 为了简单起见,我创build了一个模拟相同行为的示例程序: $ cat prog.c #include <stdio.h> int main() { printf("Main in prog.c\n"); } $ cat static.c #include <stdio.h> int main() { printf("Main in static.c\n"); } $ gcc -c static.c $ ar rcs libstatic.a static.o $ gcc prog.c -L. -lstatic -o 2main $ gcc -L. -lstatic -o 1main […]

多重主要function

我有点新,所以忍受着我。 我目前正在学习C#和Java,其中的一个相似之处在于主函数需要封装在一个类中。 例如 public class HelloWorld { public static void main(String[] args) { // Some Code } } 现在我明白了,当你运行程序的时候main是经常的“入口点”。 所以基本上,你的程序将在主函数的任何地方开始执行。 但我相信在这两种语言中,你可以在多个类中有多个主要的function。 所以当我编译一个具有多个主要function的项目时,“入口点”在哪里? 编译器如何知道从哪里开始?

没有Main()在WPF?

在编程方面,我是初学者,但我确定其中一个普遍规则是程序以Main()开头。 我创build一个WPF项目时没有看到。 Main()在WPF中的命名方式有所不同吗?

为什么argc不是一个常量?

int main( const int argc , const char[] const argv) 由于有效的C ++项目#3陈述“尽可能使用const”,我开始思考“为什么不使这些'常量'参数const ”?。 在程序中是否有任何argc的值被修改的场景?

“int main(vooid)”? 这是如何运作的?

我最近不得不input一个小的Ctesting程序,在这个过程中,我在主函数中犯了一个拼写错误,意外地使用了vooid而不是void 。 但它仍然工作。 把它缩小到最小的完整版本,我结束了: int main (vooid) { return 42; } 这确实编译( gcc -Wall -o myprog myprog.c ),并在运行时返回42。 这个有效的代码究竟是多less? 这是从我的bash shell中剪切和粘贴的成绩单,以显示我在做什么: pax$ cat qq.c int main (vooid) { return 42; } pax$ rm qq ; gcc -Wall -o qq qq.c ; ./qq pax$ echo $? 42

为什么SDL定义主macros?

在设置SDL时遇到了一些麻烦,我发现SDL定义了一个替代main的macros: #define main SDL_main // And then extern C_LINKAGE int SDL_main(int argc, char *argv[]); 如果main函数没有定义argc和argv参数,这也会产生编译错误。 这个macros只是当我看到它的时候让我头痛…为什么SDL需要重新定义main? 经过一番search之后,我发现一些人#undef main ,并以正常的方式使用它。 所以这是一个问题: SDL为什么需要重新定义main,它是做什么的? 是否有任何副作用来定义它? 我注意到的一件事是,SDLredirect到文件的标准输出和错误(我不希望这种行为),这种行为停止,如果我取消定义主。