你好世界,只有在主要的回报[重复]
Posted
技术标签:
【中文标题】你好世界,只有在主要的回报[重复]【英文标题】:Hello world with only return in main [duplicate] 【发布时间】:2013-10-16 21:49:56 【问题描述】:如何编写满足以下要求的程序:
-
打印“Hello world!”到标准输出;
有空的 main(只返回 0)即
int main(int argc, char** argv)
return 0;
main
除上述代码外不得包含其他代码。
【问题讨论】:
***.com/questions/10897552/… 欢迎来到 SO。这个想法是您尝试自己解决这个问题,当您遇到特定问题时,您提出问题,显示相关代码。 谷歌搜索“Hello World”C 给了我 37,000,000 次点击。他们都没有用吗? 您可能需要澄清在 main 中不带任何代码打印文本的要求,因为许多人不会发现这一点。 @NeilKirk 所以我做到了。我想,我会接受似乎最好的答案,下次会更有建设性。 【参考方案1】:您可以通过不同的方式做到这一点。考虑你有#include <iostream>
,那么下面的方法应该放在main之前。
您可以使用宏,但结果是未定义的,如 cmets 中所述。因此,即使这是一种简单的方法,也不应该使用它。为了完整起见,我仍将其留在这里。
#define return std::cout << "Hello world!"; return
你可以使用静态变量:
int helloWorld()
std::cout << "Hello World";
return 0;
static int print = helloWorld();
...甚至更简单:
bool printed = std::cout << "Hello World";
你可以对对象做同样的事情:
struct hello
public:
hello()
std::cout << "Hello, world!";
world;
【讨论】:
请注意,选项 1 的行为是未定义的。 @PeteBecker,好点,会更新。【参考方案2】:struct Bob
Bob()
printf("Hello world!");
bob;
int main()
【讨论】:
【参考方案3】:对象实例化:
struct S
S() std::cout << "Hello World!";
s;
int main()
或者在一个表达式中:
int i = ((std::cout << "Hello World\n"), 5);
int main()
【讨论】:
以上是关于你好世界,只有在主要的回报[重复]的主要内容,如果未能解决你的问题,请参考以下文章