Escriba un programa que imprima » GeeksforGeeks» con la función main() vacía. No se le permite escribir nada en main().
lenguaje C
- Una forma de hacer esto es aplicar el atributo constructor GCC a una función para que se ejecute antes que main() (ver esto para más detalles).
#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()
{
}
Producción:
GeeksforGeeks
- En Linux, simplemente anule la definición predeterminada de la función _start() para que funcione como un código de inicio personalizado. Vea este artículo para entender más.
#include <stdio.h>
#include <stdlib.h>
int
main(
void
)
{
}
// _start() function
void
_start(
void
)
{
printf
(
"GeeeksforGeeks"
);
// Call main() function
int
var = main();
exit
(var);
}
Ahora compile esto siguiendo el comando
gcc -nostartfiles -o file file.c
Producción:
GeeksforGeeks
lenguaje C++
- La idea es crear una clase , tener una instrucción cout en el constructor y crear un objeto global de la clase. Cuando se crea el objeto, se llama al constructor y se imprime «GeeksforGeeks».
#include <iostream>
class
MyClass {
public
:
MyClass()
{
std::cout <<
"GeeksforGeeks"
;
}
} m;
int
main()
{
}
Producción:
GeeksforGeeks
- La idea es crear una estructura y usar la misma lógica que se discutió anteriormente. La razón es que la estructura y la clase en C++ son exactamente la misma estructura de datos, excepto que la estructura tiene visibilidad pública por defecto, mientras que la clase tiene visibilidad privada por defecto.
#include <iostream>
struct
Mystruct {
Mystruct()
{
std::cout <<
"GeeksforGeeks"
;
}
} obj;
int
main() {}
Producción:
GeeksforGeeks
- Al usar una variable global, la idea es inicializar la función printf() en una variable global, pero solo funcionará en el lenguaje C++, ya que en el lenguaje C no podemos inicializar una variable o expresión como esta en una variable global.
#include <cstdio>
int
var =
printf
(
"GeeksforGeeks"
);
int
main()
{
}
Producción:
GeeksforGeeks
lenguaje Java
La idea es usar un bloque estático para imprimir, en realidad cualquier bloque estático declarado fuera del método main() en Java se ejecuta antes que el método principal.
class Myjava { static { System.out.println("GeeksforGeeks"); } public static void main(String args[]) { } }
Producción:
GeeksforGeeks
Este artículo es una contribución de Viki y fue mejorado por Shubham Bansal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA