Pregunta de la entrevista: El lenguaje C utiliza diez métodos para implementar el programa hola mundo ¿Cómo hacerlo?
1 El "¡Hola mundo!" más clásico, use printf directamente para generar "¡Hola mundo!"
#include lt; incluir lt; iostreamgt;
int main(){
printf("¡Hola mundo! "); // Método de escritura del libro de texto
puts("Hola mundo!"; ! "); // Mis favoritos
puts("Hola" " " "mundo!"); // Empalme de cadenas
std::cout lt; lt; " Hola mundo !" lt; lt; std::endl; // Escritura de libros de texto estilo C
return 0;}
2. "¡Hola mundo!" escrito con macros
"#" puede "extraer" el nombre del parámetro y convertirlo en una cadena.
#include lt;stdio.hgt;
#define Decir(algo) pone (#algo)
int main(){
return Say(¡Hola mundo!);
}
3. "¡Hola mundo!" sacado de contexto
#include lt; ;
int main(){
return puts ("No digas: ¡Hola mundo! "[12]);
}
4. "¡Hola mundo!" que se ejecuta al salir
atexit() registra la función de devolución de llamada. Esta función se puede llamar varias veces y la última función registrada se ejecuta primero.
#include lt;stdio.hgt;
#include lt;stdlib.hgt;
void say(){printf("¡mundo! "); }
void sth(){printf("Hola ");}
int main(){
return atexit(decir), atexit (algo) ;
}
5. Lee tu propio "¡Hola mundo!"
// ¡Hola mundo!
#include lt; ;
#include lt;fstreamgt;
#include lt;stringgt;
int main(){
std:: ifstream ifs(__FILE__);
std::string dice, alguna, palabra;
ifs gt;gt; dice gt;gt; alguna gt;gt;
std::cout lt;lt; algunos lt;lt; " " lt;lt; palabra
return 0; "¡Hola mundo!" con dos palabras:
Declara una instancia de una clase global. El constructor de esta clase se llamará antes de que se ejecute la función principal y el destructor se llamará después de la ejecución.
#include lt;iostreamgt;
clase decir{
público: decir(){std::cout lt;lt "Infierno";}
~say(){std::cout lt;lt; "mundo!";}
}hola;
int main(){
std::cout lt; "o ";
return 0;
}
7. Pasa en "Hola mundo" de la plantilla!"
#include lt;iostreamgt;
plantilla lt;char * palabrasgt;
clase decir{
público :
p>
operador vacío () (){std::cout lt; palabras;}
};
char hola[ ] = "¡Hola mundo!";
int main(){
return saylt; ()(),
}
8. Llamada privada "¡Hola mundo!" de la función
#include lt;iostreamgt;
#include lt;cstddefgt;
secreto de clase {
privado:
virtual void say(){std::cout lt; "¡Hola mundo!"; >
int main() {
palabra secreta;
(reinterpret_castlt; void (*)()gt; (**(intptr_t**)(amp; palabra) ))();
return 0;
}
9. Modifique directamente la dirección de retorno de la función
#include lt ; stdio.hgt;
#include lt;stdlib.hgt;
#include lt;stddef.hgt;
void say(){
puts("¡Hola mundo! ");
salir(0);
}
int main()
{
intptr_t volátil a = 0;
intptr_t volátil * p = amp;
*(p 2) = (intptr_t)decir;
*(p 3 ) = (intptr_t)say;
devuelve 0;
}
10. "¡Hola mundo!" por extraterrestres
#include lt;stdio.hgt;
void alien_say (char * p){
while (putchar (*(p = *(p 1) - *p))) ;
}
int main(){
return alien_say ("BETHO! Altec
oh liryom(a loadjudas!) dowd."), 0;
}