
C语言
尚书左仆射
我喜欢按照不按套路出牌的套路出牌。
展开
-
C语言宏操作之反复斟酌
一般我们在程序中使用宏主要是一下几种情况:1. 有些变量在程序的多处出现,我们希望统一进行管理。2. 定义一些类型简称,在使用时简化代码。3. 将一些简单的操作定义为宏,从而避免每次调用函数操作时造成系统效率下降。例如C中的getchar()、putchar(),就经常会被实现为宏。虽然宏非常有用,但是宏只是对程序的文本起作用。也就是说,宏提供了一种对组成C程序的字符进原创 2016-05-22 16:09:04 · 1403 阅读 · 0 评论 -
C语言变量内存分布
1. 首先,看一下内存中的分区情况:①堆区 : 一般由程序员手动分配释放 , 若程序员不释放,程序结束时将由OS回收。②栈区:由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 ③全局区:全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域(BSS)。 程序结束原创 2016-05-21 18:54:40 · 3146 阅读 · 0 评论 -
Windows钩子的使用
我们知道Windows中的窗口程序是基于消息,由事件驱动的,在某些情况下可能需要捕获或者修改消息,从而完成一些特殊的功能(MFC框架就利用Windows钩子对消息进行引导)。对于捕获消息而言,无法使用IAT或Inline Hook之类的方式去进行捕获,这就要用到接下来要介绍的Windows提供的专门用于处理消息的钩子函数。1. 挂钩原理Windows下的应用程序大部分都是基于消息机原创 2016-08-08 17:21:44 · 16125 阅读 · 1 评论