
C
文章平均质量分 58
对不起我是一个厨子
Others tell you how ,I tell you why,,,,,,
展开
-
你不知道的c语言之为什么数组的大小不能是变量
你不知道的c语言之为什么数组的大小不能是变量不知道是编译器是这样实现数组的还是c语言是这样规定数组的有如下代码 反汇编代码如下 我们从上面的反汇编代码可看到编译器会把int a=3,编译为 mov dword ptr[ebp-4],3虽然变量a 的值是3(这只是你认为的,其实程序不运行它的值是未知的vc6.0下为0),但在编译期间编译器为变量a分配的栈空间dword ptr原创 2015-09-09 15:09:02 · 2658 阅读 · 0 评论 -
shellcode
写过shellcode的都写过这样的语句,unsigned char shellcode[]={}; ((void (*)())(&shellcode))();然而输出shellcode,&shellcode, &shellcode[0]它们的值却是一样的,但在这里为什么却只能用&shellcode?如果将它们自身的值各自增一再输出你就会看到不同的结果,这是为什么?现以window原创 2015-09-15 21:22:22 · 771 阅读 · 0 评论 -
你不知道的位操作之整数取余
你不知道的位操作之整数取余对任一整数x,nx%2n=x&(2n-1)对于整数的2的倍数的乘除法我们可以通过位的右移算术左移来实现,那么对于整数除以2n的余数怎么用位操作来实现?在看编程珠玑一书中实现的位向量时,发现了x&0x1f怎么都想不通这是干什么的?最后编写代码试了下,竟是对任意一个整数除32取余,最后用二进制研究了下,当然我们不必真的去写32个0和1的二进制原创 2015-09-15 23:04:54 · 3181 阅读 · 1 评论 -
误人子弟篇之C语言函数返回值与参数传递
写篇博客证明还干着程序员这勾当,并乐此不疲,,,写在开头以免看到结尾你骂人,此篇博客纯属瞎扯,看看就可以了,不要当真哦!如果搞过汇编,写过子程序,那么你就不用看了,因为看到最后你会发现,在汇编中你有很多方法去返回值,传递参数,而在高级语言中,编译器只是选择了其中的一种而已,而这篇博客也写的毫无逻辑,简直丧尽天良,草菅人命,道却也有那么点点意思,如果你能看完我就,,,原创 2017-07-13 17:49:29 · 8131 阅读 · 2 评论 -
0拷贝实现C字符串原地分割
如果你曾经写过几天python代码,你将不会再轻易喜欢上另一种新语言。你感觉它们简直是丑爆了于python而言,从名字上它们就已经败了,虽说什么语言,都无所谓,关键是合不合适,但谁TM还没个最爱?对没错,我太简直是太爱C语言了,,,在python 中要分割一个字符串是这样来操作的用过python 的str类再用c++的string类,你会发现c++的string类竟然没有split函...原创 2018-04-02 22:41:51 · 647 阅读 · 1 评论