6个变态的C语言写的Hello World

开发 后端
本文仅供朋友们“消遣作乐”,能够看懂是为什么固然不错。看不懂也不必太过认真,如果你要觉得有意思的话,顶顶贴。如果你觉得没什么意思的话,一笑了之。仅供娱乐而已,不必太过认真。

下面的六个程序片段主要完成这些事情:

  1. 输出Hello, World
  2. 混乱C语言的源代码(加密源代码,嘿嘿)

下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才能编程通过。

hello1.c


  1. #define _________ } 
  2.    #define ________ putchar 
  3.    #define _______ main 
  4.    #define _(a) ________(a); 
  5.    #define ______ _______(){ 
  6.    #define __ ______ _(0x48)_(0x65)_(0x6C)_(0x6C) 
  7.    #define ___ _(0x6F)_(0x2C)_(0x20)_(0x77)_(0x6F) 
  8.    #define ____ _(0x72)_(0x6C)_(0x64)_(0x21) 
  9.    #define _____ __ ___ ____ _________ 
  10.    #include <stdio.h> 
  11.    _____ 

hello2.c

  1. #include <stdio.h> 
  2.    main(){ 
  3.      int x=0,y[14],*z=&y;*(z++)=0x48;*(z++)=y[x++]+0x1D; 
  4.      *(z++)=y[x++]+0x07;*(z++)=y[x++]+0x00;*(z++)=y[x++]+0x03; 
  5.      *(z++)=y[x++]-0x43;*(z++)=y[x++]-0x0C;*(z++)=y[x++]+0x57; 
  6.      *(z++)=y[x++]-0x08;*(z++)=y[x++]+0x03;*(z++)=y[x++]-0x06; 
  7.      *(z++)=y[x++]-0x08;*(z++)=y[x++]-0x43;*(z++)=y[x]-0x21; 
  8.      x=*(--z);while(y[x]!=NULL)putchar(y[x++]); 
  9.    } 

hello3.c


  1. #include <stdio.h> 
  2.     #define __(a) goto a; 
  3.     #define ___(a) putchar(a); 
  4.     #define _(a,b) ___(a) __(b); 
  5.     main() 
  6.     { _:__(t)a:_('r',g)b:_('$',p) 
  7.       c:_('l',f)d:_(' ',s)e:_('a',s) 
  8.       f:_('o',q)g:_('l',h)h:_('d',n) 
  9.       i:_('e',w)j:_('e',x)k:_('/n',z) 
  10.       l:_('H',l)m:_('X',i)n:_('!',k) 
  11.       o:_('z',q)p:_('q',b)q:_(',',d) 
  12.       r:_('i',l)s:_('w',v)t:_('H',j) 
  13.       u:_('a',a)v:_('o',a)w:_(')',k) 
  14.       x:_('l',c)y:_('/t',g)z:___(0x0)} 

hello4.c


  1. int n[]={0x48, 
  2.    0x65,0x6C,0x6C, 
  3.    0x6F,0x2C,0x20, 
  4.    0x77,0x6F,0x72, 
  5.    0x6C,0x64,0x21, 
  6.    0x0A,0x00},*m=n; 
  7.    main(n){putchar 
  8.    (*m)!='/0'?main 
  9.    (m++):exit(n++);} 

hello5.c

  1. main(){int i,n[]={(((1<<1)<<(1<<1)<<(1<< 
  2.     1)<<(1<<(1>>1)))+((1<<1)<<(1<<1))), (((1 
  3.     <<1)<<(1<<1)<<(1<<1)<<(1<<1))-((1<<1)<<( 
  4.     1<<1)<<(1<<1))+((1<<1)<<(1<<(1>>1)))+ (1 
  5.     <<(1>>1))),(((1<<1)<<(1<<1)<<(1<<1)<< (1 
  6.     <<1))-((1<<1)<<(1<<1)<<(1<<(1>>1)))- ((1 
  7.     <<1)<<(1<<(1>>1)))),(((1<<1)<<(1<<1)<<(1 
  8.     <<1)<<(1<<1))-((1<<1)<<(1<<1)<<(1<<(1>>1 
  9.     )))-((1<<1)<<(1<<(1>>1)))),(((1<<1)<< (1 
  10.     <<1)<<(1<<1)<<(1<<1))-((1<<1)<<(1<<1)<<( 
  11.     1<<(1>>1)))-(1<<(1>>1))),(((1<<1)<<(1<<1 
  12.     )<<(1<<1))+((1<<1)<<(1<<1)<<(1<<(1>>1))) 
  13.     -((1<<1)<<(1<<(1>>1)))),((1<<1)<< (1<<1) 
  14.     <<(1<<1)),(((1<<1)<<(1<<1)<<(1<<1)<<(1<< 
  15.     1))-((1<<1)<<(1<<1))-(1<<(1>>1))),(((1<< 
  16.     1)<<(1<<1)<<(1<<1)<<(1<<1))-((1<<1)<< (1 
  17.     <<1)<<(1<<(1>>1)))-(1<<(1>>1))), (((1<<1 
  18.     )<<(1<<1)<<(1<<1)<<(1<<1))- ((1<<1)<< (1 
  19.     <<1)<<(1<<(1>>1)))+(1<<1)), (((1<<1)<< ( 
  20.     1<<1)<<(1<<1)<< (1<<1))-((1<<1)<< (1<<1) 
  21.     <<(1<<(1>>1)))-((1<<1) <<(1<< (1>>1)))), 
  22.     (((1<<1)<< (1<<1)<<(1<<1)<< (1<<1))- ((1 
  23.     <<1)<<(1<<1)<<(1<<1))+((1<<1)<< (1<<(1>> 
  24.     1)))), (((1<<1)<<(1<<1) <<(1<<1))+(1<<(1 
  25.     >>1))),(((1<<1)<<(1<<1))+((1<<1)<< (1<<( 
  26.     1>>1))) + (1<< (1>>1)))}; for(i=(1>>1);i 
  27.     <(((1<<1) <<(1<<1))+((1 <<1)<< (1<<(1>>1 
  28.     ))) + (1<<1)); i++) printf("%c",n[i]); } 

hello6.c

下面的程序只能由C++的编译器编译(比如:g++)

  1. #include  <stdio.h> 
  2.   #define _(_) putchar(_); 
  3.   int main(void){int i = 0;_( 
  4.   ++++++++++++++++++++++++++++ 
  5.   ++++++++++++++++++++++++++++ 
  6.   ++++++++++++++++++++++++++++ 
  7.   ++++++++++++++++++++++++++++ 
  8.   ++++++++++++++++++++++++++++ 
  9.   ++++i)_(++++++++++++++++++++ 
  10.   ++++++++++++++++++++++++++++ 
  11.   ++++++++++i)_(++++++++++++++ 
  12.   i)_(--++i)_(++++++i)_(------ 
  13.   ---------------------------- 
  14.   ---------------------------- 
  15.   ---------------------------- 
  16.   ---------------------------- 
  17.   ----------------i)_(-------- 
  18.   ----------------i)_(++++++++ 
  19.   ++++++++++++++++++++++++++++ 
  20.   ++++++++++++++++++++++++++++ 
  21.   ++++++++++++++++++++++++++++ 
  22.   ++++++++++++++++++++++++++++ 
  23.   ++++++++++++++++++++++++++++ 
  24.   ++++++++++++++++++++++++++i) 
  25.   _(----------------i)_(++++++ 
  26.   i)_(------------i)_(-------- 
  27.   --------i)_(---------------- 
  28.   ---------------------------- 
  29.   ---------------------------- 
  30.   ---------------------------- 
  31.   ---------------------------- 
  32.   ------i)_(------------------ 
  33.   ---------------------------- 
  34.   i)return i;} 

原文链接:http://blog.csdn.net/haoel/article/details/4217565

责任编辑:陈四芳 来源: CSDN博客
相关推荐

2011-11-21 14:10:53

C#

2020-03-25 14:40:45

语言编程语言Hello

2021-02-01 17:29:19

FlutterHello World开发

2024-04-11 13:13:27

2024-03-13 13:53:10

C++程序开发

2021-03-30 13:48:47

WebAssemblyWeb浏览器编程语言

2009-08-14 16:54:19

C# Hello Wo

2022-08-30 12:05:19

C语言代码

2013-10-30 22:10:28

Clouda程序

2018-09-27 16:35:01

程序员编程语言Python

2017-11-28 16:57:18

2017-06-26 08:55:52

2015-10-27 09:47:11

2011-10-21 15:33:45

Dart

2023-04-10 18:34:25

编程语言开发

2014-12-19 10:07:10

C

2017-11-23 17:45:46

Yii框架IntelYii框架深度剖析

2022-03-21 18:15:30

编程语言bug系统

2012-08-27 09:10:05

JVMJava

2023-12-21 15:37:31

编程语言FortranC语言
点赞
收藏

51CTO技术栈公众号