你好世界,只有在主要的回报[重复]

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()  
    

【讨论】:

以上是关于你好世界,只有在主要的回报[重复]的主要内容,如果未能解决你的问题,请参考以下文章

你怎么写“你好,世界!”对于 AngularJS 中的彗星?

如何在一行中执行多个命令[重复]

Scala方法调用中的花括号[重复]

C:错误分配指针[重复]

删除字符串之间不需要的空格[重复]

c# IeNumerable 如果没有则返回[重复]