6 perverted C-language Hello World programs
The following six program fragments mainly accomplish these things:
- Output Hello, world
- Confusing C-language source code
All of the following programs can be compiled under GCC, only the last one needs to use C + + compiler g++ to pass the program.
hello1.c
1234567891011 |
#define _________ }
#define ________
putchar
#define _______ main
#define _(a) ________(a);
#define ______ _______(){
#define __ ______ _(0x48)_(0x65)_(0x6C)_(0x6C)
#define ___ _(0x6F)_(0x2C)_(0x20)_(0x77)_(0x6F)
#define ____ _(0x72)_(0x6C)_(0x64)_(0x21)
#define _____ __ ___ ____ _________
#include<stdio.h>
_____
|
hello2.c
123456789 |
#include<stdio.h>
main(){
int x=0,y[14],*z=&y;*(z++)=0x48;*(z++)=y[x++]+0x1D;
*(z++)=y[x++]+0x07;*(z++)=y[x++]+0x00;*(z++)=y[x++]+0x03;
*(z++)=y[x++]-0x43;*(z++)=y[x++]-0x0C;*(z++)=y[x++]+0x57;
*(z++)=y[x++]-0x08;*(z++)=y[x++]+0x03;*(z++)=y[x++]-0x06;
*(z++)=y[x++]-0x08;*(z++)=y[x++]-0x43;*(z++)=y[x]-0x21;
x=*(--z);
while
(y[x]!=NULL)
putchar
(y[x++]);
}
|
Hello3.c
1234567891011121314 |
#include<stdio.h>
#define __(a)
goto a;
#define ___(a)
putchar
(a);
#define _(a,b) ___(a) __(b);
main()
{ _:__(t)a:_(
‘r‘
,g)b:_(
‘$‘
,p)
c:_(
‘l‘
,f)d:_(
‘ ‘
,s)e:_(
‘a‘
,s)
f:_(
‘o‘
,q)g:_(
‘l‘
,h)h:_(
‘d‘
,n)
i:_(
‘e‘
,w)j:_(
‘e‘
,x)k:_(
‘\n‘
,z)
l:_(
‘H‘
,l)m:_(
‘X‘
,i)n:_(
‘!‘
,k)
o:_(
‘z‘
,q)p:_(
‘q‘
,b)q:_(
‘,‘
,d)
r:_(
‘i‘
,l)s:_(
‘w‘
,v)t:_(
‘H‘
,j)
u:_(
‘a‘
,a)v:_(
‘o‘
,a)w:_(
‘)‘
,k)
x:_(
‘l‘
,c)y:_(
‘\t‘
,g)z:___(0x0)}
|
Hello4.c
123456789 |
int n[]={0x48,
0x65,0x6C,0x6C,
0x6F,0x2C,0x20,
0x77,0x6F,0x72,
0x6C,0x64,0x21,
0x0A,0x00},*m=n;
main(n){
putchar
(*m)!=
‘\0‘
?main
(m++):
exit
(n++);}
|
Hello5.c
12345678910111213141516171819202122232425262728 |
main(){
int i,n[]={(((1<<1)<<(1<<1)<<(1<<
1)<<(1<<(1>>1)))+((1<<1)<<(1<<1))), (((1
<<1)<<(1<<1)<<(1<<1)<<(1<<1))-((1<<1)<<(
1<<1)<<(1<<1))+((1<<1)<<(1<<(1>>1)))+ (1
<<(1>>1))),(((1<<1)<<(1<<1)<<(1<<1)<< (1
<<1))-((1<<1)<<(1<<1)<<(1<<(1>>1)))- ((1
<<1)<<(1<<(1>>1)))),(((1<<1)<<(1<<1)<<(1
<<1)<<(1<<1))-((1<<1)<<(1<<1)<<(1<<(1>>1
)))-((1<<1)<<(1<<(1>>1)))),(((1<<1)<< (1
<<1)<<(1<<1)<<(1<<1))-((1<<1)<<(1<<1)<<(
1<<(1>>1)))-(1<<(1>>1))),(((1<<1)<<(1<<1
)<<(1<<1))+((1<<1)<<(1<<1)<<(1<<(1>>1)))
-((1<<1)<<(1<<(1>>1)))),((1<<1)<< (1<<1)
<<(1<<1)),(((1<<1)<<(1<<1)<<(1<<1)<<(1<<
1))-((1<<1)<<(1<<1))-(1<<(1>>1))),(((1<<
1)<<(1<<1)<<(1<<1)<<(1<<1))-((1<<1)<< (1
<<1)<<(1<<(1>>1)))-(1<<(1>>1))), (((1<<1
)<<(1<<1)<<(1<<1)<<(1<<1))- ((1<<1)<< (1
<<1)<<(1<<(1>>1)))+(1<<1)), (((1<<1)<< (
1<<1)<<(1<<1)<< (1<<1))-((1<<1)<< (1<<1)
<<(1<<(1>>1)))-((1<<1) <<(1<< (1>>1)))),
(((1<<1)<< (1<<1)<<(1<<1)<< (1<<1))- ((1
<<1)<<(1<<1)<<(1<<1))+((1<<1)<< (1<<(1>>
1)))), (((1<<1)<<(1<<1) <<(1<<1))+(1<<(1
>>1))),(((1<<1)<<(1<<1))+((1<<1)<< (1<<(
1>>1))) + (1<< (1>>1)))};
for
(i=(1>>1);i
<(((1<<1) <<(1<<1))+((1 <<1)<< (1<<(1>>1
))) + (1<<1)); i++)
printf
(
"%c"
,n[i]); }
|
Hello6.cpp
The following program can only be compiled by C + + compiler (for example: g++)
12345678910111213141516171819202122232425262728293031323334 |
#include <stdio.h>
#define _(_)
putchar
(_);
int main(
void
){
int i = 0;_(
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
++++i)_(++++++++++++++++++++
++++++++++++++++++++++++++++
++++++++++i)_(++++++++++++++
i)_(--++i)_(++++++i)_(------
----------------------------
----------------------------
----------------------------
----------------------------
----------------i)_(--------
----------------i)_(++++++++
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
++++++++++++++++++++++++++++
++++++++++++++++++++++++++i)
_(----------------i)_(++++++
i)_(------------i)_(--------
--------i)_(----------------
----------------------------
----------------------------
----------------------------
----------------------------
------i)_(------------------
----------------------------
i)
return i;}
|
(End of full text)
6 perverted C-language Hello World programs