自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

转载 C常用字符串函数

转自 http://www.cnblogs.com/xiangzi888/archive/2012/04/16/2451947.html 平时对字符串的操作的是很多的,了解下常用的字符串函数会使 c 编程变得很快捷!这里适当整理一下,方便以后参考。使用时,会用到大量指针的操作,注意加头文件:#include <string.h>一、str 系列1.strtokextern char *strtok

2016-03-30 22:55:41 336

原创 VCL 控件分类

TForm右下角小窗体中调整form 显示位置。动态窗体:主窗体和动态生成的窗体(Project|Options|Forms)在一个头文件中添加另一个头文件(File|Use Unit)new TForm2(this); (this: 指以此为容器)ShowModal(),Show(); (是否当前窗体关闭后才能操作父窗体:模态方式,非模态方式)Close(); (关闭窗体) (在Eve

2016-03-29 23:37:04 944

原创 程序员的自我修养——运行库

atexit()函数注册一个main结束时执行的函数。一个典型的程序运行步骤大致如下: 1. 操作系统在创建进程后,把控制权交给程序的入口; 2. 入口函数对运行库和程序运行环境进行初始化,包括堆、IO、线程、全局变量构造等。 3. 入口函数在完成初始化之后调用main函数,开始执行程序主体部分。 4. main函数执行完毕之后,返回到入口函数,入口函数进行清理工作,包括全局变量析构、堆销毁

2016-03-24 00:27:31 362

原创 程序员的自我修养——内存

栈函数 和 局部变量 都要使用到栈。 在经典的操作系统中,栈总是向下增长的。压栈操作使栈顶的地址减小,弹出的操作使栈顶地址增大。堆栈帧保存了一个函数调用所需要的维护信息的栈。也称为活动记录。 一般包含以下方面: 1. 函数返回地址和参数; 2. 临时变量:函数的非静态局部变量、编译器自动产生的其他临时变量。 3. 保存的上下文:函数调用前后需要保持不变的寄存器。Debug模式在第四步里

2016-03-23 23:58:47 306

原创 程序员的自我修养——Windows下的动态链接

DLL显示运行时链接LoadLibrary,装载一个DLL到进程的地址空间。GetProcAddress,查找某个符号的地址。FreeLibrary,卸载某个已加载的模块。在Windows下,要尽量遵循以下指导意见来使用C++编写动态链接库所有的接口函数都应该是虚函数。所有的方法都应该是纯虚的(或inline)。所有的全局函数都应该使用extern “C” 来防止名字修饰的不兼容。并且导

2016-03-23 23:36:24 201

原创 程序员的自我修养——装载与进程

一般来说,C语言指针大小的位数与虚拟空间的位数相同。32位平台下的指针为32位,即4字节;64位平台下的指针为64位,即8字节。动态装入的基本原理:程序运行时是有局部性原理的,可以将程序最常用的部分驻留在内存中,而将一些不太常用的数据存放在磁盘里面。在有虚拟存储情况下,进程建立最开始三件事: 1. 创建一个独立的虚拟地址空间。 2. 读取可执行文件头,并且建立虚拟空间与可执行文件的映射关系。

2016-03-23 00:13:31 249

原创 程序员的自我修养——动态链接

静态库的问题空间浪费。对程序的更新、部署和发布会带啦很多麻烦。如果某一个模块更新,则需要重新链接所有的文件。为了解决这两个问题,把程序的模块分隔开来形成独立文件,把链接这一过程推迟到运行时在进行——动态链接的基本思想。动态链接的基本思想动态链接的基本思想:把程序按照模块拆分成各个相对独立部分,在程序运行时才将它们链接在一起形成一个完整的程序,而不是像静态链接那样把所有的程序模块都链接成一个单独

2016-03-23 00:09:11 426

原创 程序员的自我修养——静态链接

ELF两个特殊的段: .init 段:保存可执行指令,构成进程的初始化代码。在main 函数之调用之前,Glibc 初始化部分安排执行这个段中的代码。 .fint 段:保存进程终止代码指令。main函数正常退出时,Glibc 会安排执行这个段中的代码。ABI(应用二进制接口):符号修饰标准、变量内存布局、函数调用方 式等这些跟可执行代码二进制兼容性相关的内容。lds扩展名:链接脚本名。

2016-03-20 22:30:04 259

原创 番外——函数随记

异或交换函数void swap(int *a, int *b){ *a ^= *b ^= *a ^= *b;}*a 和 *b 列举四种情况 *a | 1 1 0 0 *b | 0 1 0 1^ *a | 1 0 0 1^ *b | 1 1 0 0 (和最初的*a 一样)^ *a | 0 1 0 1 (和最初的*b 一样)数据

2016-03-20 21:33:22 226

原创 程序员的自我修养——目标文件

目标文件内容1. “文件头”:描述整个文件的文件的文件属性,包括文件是否可执 行、是静态链接还是动态链接及入口地址(可执行文件)、目标硬件、目标操作系统等信息,文件头还包括一个段表。段表其实就是一个描述文件中各个段的数组,描述段在文件中的偏移位置及段的属性等。 2. .text段:编译后执行语句都编译成机器代码,保存在该段。 3. .data段:已经初始化的全局变量和局部静态变量都保存

2016-03-20 17:56:22 286

原创 程序员的自我修养——编译和链接

预编译:主要处理那些源代码文件中的以 “#” 开始的预编译指令。如 #include、#pragma、#define。$ gcc -E client.cpp -o client.i 或 $ cpp client.cpp > client.i  编译:整个程序构建的核心部分,也是最复杂的部分。把预处理完的文件进行一系列词法分析、语法分析、语义分析及优化后生成相应的汇编文件。

2016-03-19 23:05:35 373

原创 程序员的自我修养—线程安全

Windows 多线程数据安全措施

2016-03-17 20:38:07 326

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除