你好世界只返回主要

时间:2013-10-09 13:36:52

标签: c++ puzzle

按照要求编写程序会议的方法是什么:

  1. 打印“Hello world!”到stdout;
  2. 有空主(只返回0),即

    int main(int argc, char** argv) {
        return 0;
    }
    
  3. main除上述内容外,不得包含任何其他代码。

3 个答案:

答案 0 :(得分:14)

您可以通过不同方式执行此操作。假设你有#include <iostream>,那么应该在main之前放置以下方法。

  1. 您可以使用宏,但结果未定义,如注释中所示。因此,即使这是一种简单的方法,也不应该使用它。我仍然会把它留在这里以保持完整。

    #define return std::cout << "Hello world!"; return
    
  2. 您可以使用静态变量:

    int helloWorld() 
    { 
        std::cout << "Hello World"; 
        return 0; 
    }
    static int print = helloWorld();
    
  3. ......甚至更简单:

    bool printed = std::cout << "Hello World";
    
  4. 您可以对象执行相同操作:

    struct hello
    {
        public:
            hello()
            {
                std::cout << "Hello, world!";
            }
    } world;
    

答案 1 :(得分:1)

struct Bob
{
    Bob()
    {
        printf("Hello world!");
    }
} bob;

int main()
{
}

答案 2 :(得分:0)

  1. 对象实例化:

    struct S
    {
        S() { std::cout << "Hello World!"; }
    } s;
    
    int main() { }
    
  2. 或者在表达式中:

    int i = ((std::cout << "Hello World\n"), 5);
    
    int main() { }