S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

风骚般的代码,不解释

Posted on 2013-05-19 16:54 S.l.e!ep.¢% 阅读(1357) 评论(0)  编辑 收藏 引用 所属分类: C++
好东西一定要分享, 分享而快乐..

#include <stdio.h>
#include 
<stdlib.h>

#define ccrContParam     void **ccrParam

#define ccrBeginContext(x)  struct ccrContextTag { int ccrLine
#define ccrEndContext(x) } *x = (struct ccrContextTag *)*ccrParam

#define ccrBegin(x)      if(!x) {*ccrParam=malloc(sizeof(*x)); x= (struct ccrContextTag *)*ccrParam; x->ccrLine=0;}\
    
if (x) switch(x->ccrLine) { case 0:;
#define ccrFinish(z)     } free(*ccrParam); *ccrParam=0; return (z)
#define ccrFinishV       } free(*ccrParam); *ccrParam=0; return

#define ccrReturn(z)     \
    
do {\
    ((
struct ccrContextTag *)*ccrParam)->ccrLine=__LINE__;\
    
return (z); case __LINE__:;\
    } 
while (0)
#define ccrReturnV       \
    
do {\
    ((
struct ccrContextTag *)*ccrParam)->ccrLine=__LINE__;\
    
returncase __LINE__:;\
    } 
while (0)

#define ccrStop(z)       do{ free(*ccrParam); *ccrParam=0; return (z); }while(0)
#define ccrStopV         do{ free(*ccrParam); *ccrParam=0; return; }while(0)

#define ccrContext       void *
#define ccrAbort(ctx)    do { free (ctx); ctx = 0; } while (0)

int ascending(ccrContParam) 
{
    ccrBeginContext(foo);
    
int i;
    ccrEndContext(foo);

    ccrBegin(foo);
    
for (foo->= 0; foo->< 10; foo->i++
    {
        ccrReturn(foo
->i);
    }
    ccrFinish(
-1);
}

void main(void
{
    ccrContext z 
= 0;

    
do 
    {
        
int res = ascending(&z);
        
if(z)
            printf(
"got number %d\n", res);
    } 
while (z);
}


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理