当我们学习一门新的编程语言时,最基础的就是编写一个简单的“Hello World”程序。而C语言的“Hello World”程序在使用中可能会涉及到一些变态的写法,下面就来介绍一下六个变态的C语言“Hello World”程序和详细的编写攻略。
1. hello.c中没有main函数
这个程序的奇妙之处在于,它根本没有main函数,却可以输出“Hello, world!”。这是因为在头文件中定义了一个宏,即把main函数改成一个下划线“_”开头的函数,然后在代码中调用这个函数就可以输出了。
#include <stdio.h>
#define main _start
void _start()
{
printf("Hello, world!\n");
}
2. helloworld.c中有两个main函数
这个程序中有两个同名的main函数,是不是很奇妙?但它同样可以输出“Hello, world!”,这是因为只有一个main函数是程序的入口,而另一个main函数只是一个普通的函数而已。
#include <stdio.h>
int main()
{
printf("Hello, world!\n");
}
int main(int argc, char **argv)
{
printf("Hello, world!\n");
}
3. helloworld.c只有一个字符
这个程序只有一个字符,也就是一个字符的字符串,但它同样可以输出“Hello, world!”,这是因为编译器会自动将它作为字符串处理并输出。
main(){puts("Hello, world!");}
4. helloworld.c中的main函数递归调用自身
这个程序中的main函数是递归调用自身的,会一直输出“Hello, world!”直到栈溢出,程序异常退出。
#include <stdio.h>
int main()
{
printf("Hello, world!\n");
main();
}
5. 能够输出JavaScript代码的helloworld.c
这个程序的奇妙之处在于,它可以输出JavaScript代码,但最终输出的还是“Hello, world!”。通过在程序开头定义一个JavaScript函数,再输出该函数的调用,就可以实现这个功能。
#include <stdio.h>
char* js = "function hello() { document.write('Hello, world!'); }";
int main()
{
printf("<script>%s hello();</script>\n", js);
}
6. 使用cow和devil ASCII图案输出hello world的helloworld.c
这个程序使用ASCII码的cow和devil图形输出“Hello World!”,奇妙之处在于它使用了cowsay和devilspie两个程序来实现。
#include <stdio.h>
int main()
{
system("cowsay -f $(ls /usr/share/cowsay/cows/ | shuf -n1) \"Hello World!\" | pv -qL 10");
system("devilspie gimp -i --no-new-windows --run '(gimp-quit 0)'");
}
以上就是六个变态的C语言“Hello World”程序的详细攻略,其中指出了每个程序独特的特点和编写的方法,希望能够对初学者有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:6个变态的C语言Hello World程序 - Python技术站