免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 6540 | 回复: 30
打印 上一主题 下一主题

帮忙解释下这句程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-29 23:32 |只看该作者 |倒序浏览
Max(int *T,int e)
{
   e=T[0]>=T[1]?T[0]>=T[2]?T[0]:T[2]:T[1]>=T[2]?T[1]:T[2];// T 为定义的一维数组

  printf("%d", e);
   return OK;//  OK = 1

}

其中比较大小的代码应该怎么理解??  谢谢

论坛徽章:
0
2 [报告]
发表于 2008-08-29 23:40 |只看该作者
原帖由 byhoo123 于 2008-8-29 23:32 发表
Max(int *T,int e)
{
   e=T[0]>=T[1]?T[0]>=T[2]?T[0]:T[2]:T[1]>=T[2]?T[1]:T[2];// T 为定义的一维数组

  printf("%d", e);
   return OK;//  OK = 1

}
...


  e= T[0]>=T[1]?(T[0]>=T[2]?T[0]:T[2])T[1]>=T[2]?T[1]:T[2]);// T 为定义的一维数组
if(T[0] >= T[1])
   T[0]>=T[2]?T[0]:T[2];
else
   T[1]>=T[2]?T[1]:T[2];

论坛徽章:
0
3 [报告]
发表于 2008-08-29 23:46 |只看该作者
就是T数组0,1,2三个下标的值分别比较找出最大值
建议执行一下看看
然后看看c操作符的结合性

论坛徽章:
0
4 [报告]
发表于 2008-08-30 22:47 |只看该作者
谢谢! 解释的很清楚,我明白了.另外一个问题,你们怎么会那么牛,怎么做才能像你们那样牛啊??

论坛徽章:
0
5 [报告]
发表于 2008-08-30 22:51 |只看该作者
这段代码是大便
可读性太烂
是谁写的?要打板子!!!

论坛徽章:
0
6 [报告]
发表于 2008-08-30 23:37 |只看该作者
那为什么有这样的代码还给人当例子呢?

论坛徽章:
0
7 [报告]
发表于 2008-08-30 23:47 |只看该作者
原帖由 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 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2008-08-30 23:49 |只看该作者
解读一下也不错,就当加深对c ?:操作符的理解

论坛徽章:
0
9 [报告]
发表于 2008-08-31 01:15 |只看该作者
原帖由 gawk 于 2008-8-30 23:49 发表
解读一下也不错,就当加深对c ?:操作符的理解

也是这个意思...

论坛徽章:
0
10 [报告]
发表于 2008-08-31 07:49 |只看该作者
谁要是在实际项目中写这种东西给我看,我非一脚踢死他。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP