2013-10-09 66 views
-4

回报是编写以下要求程序主持会议的方式:“Hello World”的你好世界上仅有的在主

  1. 打印标准输出
  2. 具有空主要(只是返回0),即

    int main(int argc, char** argv) { 
        return 0; 
    } 
    
  3. main必须包含没有额外的代码除了上面。

+0

http://stackoverflow.com/questions/10897552/call-a- function-before-main?lq = 1 – chris

+0

欢迎来到SO。这个想法是,你试图自己解决这个问题,当你遇到一个特定的问题时,你会问一个问题,显示相关的代码。 – juanchopanza

+2

使用谷歌搜索“Hello World”C给了我37,000,000次点击。他们都没用吗? – Bathsheba

回答

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; 
    
+0

+1非常具有启发性。 – opalenzuela

+2

请注意,选项1的行为未定义。 –

+0

@PeteBecker,好点,会更新。 – sukhmel

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

int main() 
{ 
} 
0
  1. 对象实例化:

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

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