- 论坛徽章:
- 0
|
原帖由 lxbkey 于 2008-8-30 23:37 发表 ![]()
那为什么有这样的代码还给人当例子呢?
炫技呗
c社群从来都有这个"烂习惯"
越迷乱的代码越高深
无怪乎每年国际C混乱代码大赛(The Inter national Obfuscated C Code Competition )得奖的都是那些著名大拿
=====================================
1. 1987, David Korn of Bell Labs
main() { printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-
0x60);} |
2. 1988, Gopi Reddy
#include<stdio.h>
#include<ctype.h>
#define w printf
#define p while
#define t(s) (W=T(s))
char*X,*B,*L,I[99];M,W,V;D(){W==9?(w("`%.*s' is
",V,X),t(0)):W==40?
(t(0),D(),t(41)):W==42?(t(0),D(),w("ptr to ")):0;p(W==40?(t(0),
w("func returning "),t(41)):W==91?(t(0)==32?(w("array[0..%d]
of ",
atoi(X)-1),t(0)):w("array of "),t(93)):0);}main(){p(w("input:
"),
B=gets(I))if(t(0)==9)L=X,M=V,t(0),D(),w("%.*s.\n\n",M,L);}T(s)
{if(!s||s==W)
{p(*B==9||*B==32)B++;X=B;V=0;if(W=isalpha(*B)?9:isdigit(*B)?32
:*B++)
if(W<33)p(isalnum(*B))B++,V++;}return W;} |
3. Diomidis Spinellis
#define O(b,f,u,s,c,a) \
b(){into=f();switch(*p++){Xu:_osb();Xc:_oab();default:p--;_o;}}
#define t(e,d,_,C)X e:f=fopen(B+d,_);C;fclose(f)
#define U(y,z) while(p=Q(s,y))*p++=z,*p=' '
#define N for(i=0;i<11*R;i++)m&&
#define I "%d %s\n",i,m
#define X ;break;case
#define _ return
#define R 999
typedef char*A;int*C,E[R],L[R],M[R],P[R],l,i,j;char
B[R],F[2];A m[12*R],malloc
(),p,q,x,y,z,s,d,f,fopen();A Q(s,o)A
s,o;{for(x=s;*x;x++){for(y=x,z=o;*z&&*y==
*z;y++)z++;if(z>o&&!*z)_ x;}_
0;}main(){m[11*R]="E";while(puts("Ok" ,gets(B)
)switch(*B){X'R':C=E;l=1;for(i=0;i<R [i++]=0);while(l){while(
!(s=m[l]))l++;if
(!Q(s,"\"" ){U("<>",'#');U("<=",'$');U(">=",'!');}d=B;while(*F
=*s){*s=='"'&&j
++;if(j&1||!Q(" \t",F))*d++=*s;s++;}*d--
=j=0;if(B[1]!='=')switch(*B){X'E':l=-1
X'R':B[2]!='M'&&(l=*--
C)X'I':B[1]=='N'?gets(p=B),P[*d]=S() *(q=Q(B,"TH" )=0,p
=B+2,S()&&(p=q+4,l=S()-
1))X'P':B[5]=='"'?*d=0,puts(B+6) p=B+5,printf("%d\n",S
()))X'G':p=B+4,B[2]=='S'&&(*C++=l,p++),l=S()-1
X'F':*(q=Q(B,"TO" )=0;p=B+5 [i
=B[3]]=S();p=q+2;M=S();L=l
X'N':++P[*d]<=M[*d]&&(l=L[*d]);}else p=B+2,P[
*B]=S();l++;}X'L':N printf(I)X'N':N free(m),m=0 X'B':_ 0
t('S',5,"w",N
fprintf(f,I))t('O',4,"r",while(fgets(B,R,f))(*Q(B,"\n" =0,G())
)X 0:default:G()
;}_ 0;}G(){l=atoi(B);m[l]&&free(m[l]);(p=Q(B,"
" )?strcpy(m[l]=malloc(strlen(p
)),p+1) m[l]=0,0);}O(S,J,'=',==,'#',!=)O(J,K,'<',<,'>',> O(K,
V,'$',<=,'!',>=)
O(V,W,'+',+,'-',-)O(W,Y,'*',*,'/',/)Y(){int o;_*p=='-'?p++,-
Y():*p>='0'&&*p<=
'9'?strtol(p,&p,0):*p=='('?p++,o=S(),p++,o [*p++];}
对了这是一个basic解释器
以上引自c砖家编程
[ 本帖最后由 blizzard213 于 2008-8-30 23:56 编辑 ] |
|