易截截图软件、单文件、免安装、纯绿色、仅160KB

C代码混淆之旅

从天堂走向地狱的六部... 1
第一步、把for变成while. 2
第二步,把循坏变成递归... 2
第三步,弄乱代码结构/使用没有含义的变量名... 3
第四步,取消临时变量... 3
第五步,继续弄乱变量名... 4
第六步,移除常量... 4
 
从天堂走向地狱的六部
开始程序
下面是一个找出素数的程序:
 
查看源代码打印帮助
void primes(int cap) 
  { 
     int i, j, composite; 
     for(i = 2; i < cap; ++i) { 
 
         composite = 0; 
         for(j = 2; j * j < i; ++j) { 
             composite += !(i % j); 
         } 
 
         if(!composite){ 
             printf("%dt", i); 
         } 
     } 
 } 
 
 
 int main() 
 { 
     primes(100); 
 }
 
下面我们来看看如何把上面这段代码搞得复杂难懂。
 
第一步、把for变成while
通常来说,for循坏要以while循坏简单一些,上面的程序有二重for循环,我们不但要把其变成while循环,而且还要把二重循环的变成一重的循环,然后使用大量的if-else语句来判断。
 
查看源代码打印帮助
void primes(int cap) 

    int i, j, composite, t = 0; 
  
    while(t < cap * cap) { 
        i = t / cap; 
        j = t++ % cap; 
        if(i <= 1); 
        else if(!j) 
            composite = j; 
&nbs


相关文档:

GNU C的一大特色就是__attribute__机制

GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)
和类型属性(Type Attribute)。
__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute__参数。
__at ......

C/C++中函数指针的含义

函数存放在内存的代码区域内,它们同样有地址,我们如何能获得函数的地址呢?
  如果我们有一个int test(int a)的函数,那么,它的地址就是函数的名字,这一点如同数组一样,数组的名字就是数组的起始地址。
  定义一个指向函数的指针用如下的形式,以上面的test()为例:
  int (*fp)(int a);//这里就定义了一个指 ......

在windows下通过VC6.0第一次用C调用SQLite

1. 下载SQLitewindows版
我们可以从下列网站下载sqlite的windows版。
http://www.sqlite.com.cn/bbs/topicdisp.asp?tid=182&topage=1#gotolast
下载这个三个文件:
SQLite 3.3.7 下载
windows版
sqlite-3_3_7.zip      这个是SQLite的windows可执行文件
sqlitedll-3_3_7.zip 这个 ......

[C]C语言基础巩固专题 链表之(链表反转)

 链表是c语言中很重要的数据结构,是考察一个程序员的基本功的手段,之前在一家公司面试时就问到了
实现一个链表的反转,当时就是没有很好冷静的思考,今天在这里写出来,共勉!
 基本算法:
       1. 判断是否为空,如果为空,返回NULL
       ......

[C]C语言基础巩固专题 链表之(链表创建和删除)

 链表中有两个关键的操作:创建和删除。今天我就对这两个操作进行介绍,
从这两个操作中学习到链表的基本用法。
1. Create
   Create() 是一个链表基础,只有建立好链表才能对它进行相应的查找,删除 等。
  基本算法:
  1.初始化
     head=NULL;
   ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号