-4

编写满足以下要求的程序的方法是什么:

  1. 打印“Hello world!” 到标准输出;
  2. 有空的主要(只返回0)即

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

4

3 回答 3

14

You can do this in different ways. Consider you have #include <iostream> then following methods should be placed before main.

  1. You may use macros, but the result is undefined as noticed in comments. So even if this is an easy way, it should never be used. I will still leave it here for completeness.

    #define return std::cout << "Hello world!"; return
    
  2. You may use static variable:

    int helloWorld() 
    { 
        std::cout << "Hello World"; 
        return 0; 
    }
    static int print = helloWorld();
    
  3. ... or even simpler:

    bool printed = std::cout << "Hello World";
    
  4. You can do same with object:

    struct hello
    {
        public:
            hello()
            {
                std::cout << "Hello, world!";
            }
    } world;
    
于 2013-10-09T13:39:08.370 回答
1
struct Bob
{
    Bob()
    {
        printf("Hello world!");
    }
} bob;

int main()
{
}
于 2013-10-09T13:39:56.623 回答
0
  1. Object Instantiation:

    struct S
    {
        S() { std::cout << "Hello World!"; }
    } s;
    
    int main() { }
    
  2. Or in an expression:

    int i = ((std::cout << "Hello World\n"), 5);
    
    int main() { }
    
于 2013-10-09T13:40:46.653 回答