Рубрики

Как напечатать «GeeksforGeeks» с пустым main () в C, C ++ и Java?

Напишите программу, которая печатает « GeeksforGeeks» с пустой функцией main (). Вам не разрешено писать что-либо в main ().

Язык C

  1. Один из способов сделать это — применить атрибут конструктора GCC к функции, чтобы она выполнялась до main () (подробнее см. В этом разделе).

    #include <stdio.h>

      
    / * Применить атрибут конструктора к myStartupFun ()

       чтобы он выполнялся перед main () * /

    void myStartupFun(void) __attribute__((constructor));

      
    / * реализация myStartupFun * /

    void myStartupFun(void)

    {

        printf("GeeksforGeeks");

    }

      

    int main()

    {
    }

    Выход:

    GeeksforGeeks
  2. В Linux просто переопределите определение по умолчанию функции _start (), чтобы оно работало как пользовательский код запуска. Смотрите эту статью, чтобы понять больше.

    #include <stdio.h>
    #include <stdlib.h>

      

    int main(void)

    {
    }

      
    // _start () функция

    void _start(void)

    {

        printf("GeeeksforGeeks");

      

        // Вызов функции main ()

        int var = main();

        exit(var);

    }

    Теперь скомпилируйте это с помощью следующей команды

    gcc -nostartfiles -o file file.c

    Выход:

    GeeksforGeeks

Язык C ++

  1. Идея состоит в том, чтобы создать класс , создать оператор cout в конструкторе и создать глобальный объект класса. Когда объект создан, вызывается конструктор и печатается «GeeksforGeeks».

    #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

Идея состоит в том, чтобы использовать статический блок для печати, фактически любые статические блоки, объявленные вне метода main () в java, выполняются перед методом main.

class Myjava {

    static

    {

        System.out.println("GeeksforGeeks");

    }

    public static void main(String args[])

    {

    }

}

Выход:

GeeksforGeeks

Эта статья предоставлена Viki и улучшена Shubham Bansal . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Рекомендуемые посты:

Как напечатать «GeeksforGeeks» с пустым main () в C, C ++ и Java?

0.00 (0%) 0 votes