如何在C、C++和java中用空主()打印“GeeksforGeeks”?

编写一个程序来打印“ “极客” 使用空的main()函数。不允许在main()中写入任何内容。

null

C语言

  1. 一种方法是将GCC构造函数属性应用于函数,使其在main()之前执行(请参见 详细信息)。

    #include <stdio.h>
    /* Apply the constructor attribute to myStartupFun()
    so that it is executed before main() */
    void myStartupFun( void ) __attribute__((constructor));
    /* implementation of myStartupFun */
    void myStartupFun( void )
    {
    printf ( "GeeksforGeeks" );
    }
    int main()
    {
    }

    
    

    输出:

    GeeksforGeeks
  2. 在linux中,只需覆盖 _开始() 函数,以便将其用作自定义启动代码。看见 文章要了解更多。

    #include <stdio.h>
    #include <stdlib.h>
    int main( void )
    {
    }
    // _start() function
    void _start( void )
    {
    printf ( "GeeeksforGeeks" );
    // Call main() function
    int var = main();
    exit (var);
    }

    
    

    现在按照下面的命令编译它

    gcc -nostartfiles -o file file.c

    输出:

    GeeksforGeeks

C++语言

  1. 我们的想法是创造一个 ,在构造函数中有一个cout语句,并创建该类的全局对象。创建对象时,调用构造函数并打印“Geeksforgeks”。

    #include <iostream>
    class MyClass {
    public :
    MyClass()
    {
    std::cout << "GeeksforGeeks" ;
    }
    } m;
    int main()
    {
    }

    
    

    输出:

    GeeksforGeeks
  2. 这个想法是创造 结构 并使用上面讨论的相同逻辑。原因是 结构 C++中的数据结构完全相同 结构 默认为公共可见性,而 默认为私有可见性

    #include <iostream>
    struct Mystruct {
    Mystruct()
    {
    std::cout << "GeeksforGeeks" ;
    }
    } obj;
    int main() {}

    
    

    输出:

    GeeksforGeeks
  3. 通过使用全局变量,我们的想法是初始化 printf() 函数对全局变量的作用,但它只在C++语言中工作,就像C语言一样,我们不能初始化变量或表达式,这样就到全局变量。

    #include <cstdio>
    int var = printf ( "GeeksforGeeks" );
    int main()
    {
    }

    
    

    输出:

    GeeksforGeeks

Java语言

其思想是使用静态块进行打印,实际上,在java中,在main()方法之外声明的任何静态块都是在main方法之前执行的。

class Myjava {
static
{
System.out.println( "GeeksforGeeks" );
}
public static void main(String args[])
{
}
}


输出:

GeeksforGeeks

本文由 威凯 并通过 Shubham Bansal .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享