Tag:

什么是Ruby的“主”?

如果我运行这个文件为“ ruby x.rb ”: class X end x = X.new 什么叫“ X.new ”? 它是一个对象/进程/等?

为什么将main声明为数组编译?

我在CodeGolf上看到了一段代码,它被用作编译器炸弹,其中main被声明为一个巨大的数组。 我尝试了以下(非炸弹)版本: int main[1] = { 0 }; 它似乎在Clang下编译得很好,在GCC下面只有一个警告: 警告:'main'通常是一个函数[-Wmain] 由此产生的二进制文件当然是垃圾。 但为什么它编译? C规范甚至允许吗? 我觉得有关的部分是说: 5.1.2.2.1程序启动 程序启动时调用的函数名为main。 这个实现声明了这个函数没有原型。 它应该用一个返回typesint来定义,并且不带任何参数或者带有两个参数,或者以某种其他实现定义的方式来定义。 “一些其他实现定义的方式”是否包含全局数组? (在我看来,规范仍然是指一个函数 。) 如果不是,它是一个编译器扩展吗? 还是工具链的一个function,这是为其他目的服务的,他们决定通过前端提供它?

为什么C()中的main()不能被内联?

我正在阅读C ++常见问题,我注意到一句话。 main()不能内联。 为什么是这样?

在C语言中编译并运行没有main()的程序

我试图编译和运行下面的程序没有main()函数在C 。 我已经使用以下命令编译了我的程序。 gcc -nostartfiles nomain.c 编译器给出警告 /usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000400340 好吧,没问题。 然后,我运行可执行文件(a.out), printf语句都成功打印,然后出现分段错误 。 所以,我的问题是, 成功执行打印语句后为什么分段错误? 我的代码: #include <stdio.h> void nomain() { printf("Hello World…\n"); printf("Successfully run without main…\n"); } 输出: Hello World… Successfully run without main… Segmentation fault (core dumped) 注意: 在这里, -nostartfiles gcc标志防止编译器在链接时使用标准启动文件

main()在C ++中重载?

main() 2个有效版本存在于C++ : int main() // version 1 int main(int argc, char **argv) // version 2 但是两个超载不能同时并存。 为什么不? (可能的用例:从terminal运行程序时,如果没有parameter passing,则调用第一个版本,否则第二个版本是。) 编译器是否执行特殊的检查以允许每个二进制只有一个版本?

`如果__name__ =='__main __'`在Ruby中是等价的

我是Ruby的新手。 我正在寻找从包含我想要继续单独使用的工具的模块导入函数。 在Python中,我只需要这样做: def a(): … def b(): … if __name__ == '__main__': a() b() 这允许我运行该程序或将其作为模块导入,以单独使用a()和/或b() 。 Ruby中的等价范例是什么?

是'int main' 一个有效的C / C ++程序?

我问,因为我的编译器似乎这样认为,即使我不这样认为。 echo 'int main;' | cc -xc – -Wall echo 'int main;' | c++ -x c++ – -Wall Clang不会发出任何警告或错误,而gcc只会发出温和的警告: 'main' is usually a function [-Wmain] ,但只有编译为C.指定-std=似乎并不重要。 否则,它编译和链接罚款。 但是在执行时,它会立即用SIGBUS (对我来说)终止。 什么应该main()返回在C和C + + (优秀)答案阅读? 并通过语言规范快速grep,它肯定会在我看来,主要function是必需的。 但gcc的-Wmain ( 通常是一个函数)的错误(这里错误的-Wmain )似乎可能是-Wmain 。 但为什么? 是否有一些奇怪的边缘或“历史”使用这个? 任何人都知道什么给? 我想我的观点是,我真的认为这应该是一个托pipe环境中的错误 ,呃?

为什么main在这里不返回0?

我正在读书 ISO / IEC 9899:201x委员会草案 – 2011年4月12日 我在5.1.2.2.3中find程序终止 ..reaching the } that terminates the main function returns a value of 0. 这意味着如果你没有在main()指定任何返回语句,并且程序运行成功,那么main的右括号将返回0。 但是在下面的代码中,我没有指定任何返回语句,但它不返回0 #include<stdio.h> int sum(int a,int b) { return (a + b); } int main() { int a=10; int b=5; int ans; ans=sum(a,b); printf("sum is %d",ans); } 编 gcc test.c ./a.out sum is 15 […]

main()函数似乎不起作用

我是Python的新手,我正在使用Python 3.3.2。 我跑了下面的代码: import sys def random(size=16): return open(r"C:\Users\ravishankarv\Documents\Python\key.txt").read(size) def main(): key = random(13) print(key) 并期望它在密钥文件中打印内容。 该程序在IDLE上运行没有错误,但没有任何反应。 密钥不打印。 有人可以帮忙吗?

WINMAIN和main()在C ++(扩展)

对了,我看了这篇文章: WinMain,main和DllMain在C ++中的区别 我现在知道WINMAIN用于窗口应用程序, main()用于控制台。 但是阅读这篇文章并没有真正告诉我为什么有什么不同。 我的意思是把不同的主要function分开来启动一个程序是什么意思? 这是由于性能问题? 或者是什么?