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

据说是美国最“怪”C程序大赛的获奖程序

int main()
{
printf(&unix["\021%six\012\0"], (unix)["have"] + "fun" - 0x60);
}
gcc -S编译成汇编代码如下:
        .file   "test.c"
        .section        .rodata
.LC0:
        .string "fun"
.LC1:
        .string "\021%six\n"
        .string ""
        .text
.globl main
        .type   main,@function
main:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $8, %esp
        andl    $-16, %esp
        movl    $0, %eax
        subl    %eax, %esp
        subl    $8, %esp
        movl    $.LC0, %eax
        subl    $96, %eax
        addl    $97, %eax
        pushl   %eax
        pushl   $.LC1+1
        call    printf
        addl    $16, %esp
        leave
        ret
.Lfe1:
        .size   main,.Lfe1-main
        .section        .note.GNU-stack,"",@progbits
  &n


相关文档:

读《微软C编程精粹》的一些收获

-  要使用断言对函数参数进行确认
-  为了不必要的开销,可以仅使用断言,而不要return
    网上有人写的strcpy代码,做了太多的出错处理,导致性能低下,其实没必要,用assert就行了,这样在debug模式下能捕捉错误,release下又不影响性能。
- 书上提供的memcpy的范例
void memcpy(void* pvT ......

C/C++语言中Static的作用详述

在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。
(1)先来介绍它的第一条也是最重要的一条:隐藏。
当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。
下面是a.c的内容
ch ......

为什么C和C++牛人多

1、C和C++够笨,逼的程序员自己做很多事。
C其实大家都知道,是一门中低级语言,保留了指针等汇编特征,与系统底层结合密切。C++呢,更多的向个Object C,即面向对象的C。但这些,其实并不能够让程序员显得很牛。
我个人的理解,之所以C和C++程序员显得很牛,其实原因和大家想像的正好相反,不是因为C和C++太强大,而是这 ......

function(p,a,c,k,e,d)

<script>
a=62;
function encode() {
var code = document.getElementById('code').value;
code = code.replace(/[\r\n]+/g, '');
code = code.replace(/'/g, "\\'
");
var tmp = code.match(/\b(\w+)\b/g);
tmp.sort();
var dict = [];
var i, t = '';
for(var i=0; i<tmp.length ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号