自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (3)
  • 收藏
  • 关注

转载 硬盘中内存芯片

缓存(Cache memory)是硬盘控制器上的一块内存芯片,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。由于硬盘的内部数据传输速度和外界介面传输速度不同,缓存在其中起到一个缓冲的作用。缓存的大小与速度是直接关系到硬盘的传输速度的重要因素,能够大幅度地提高硬盘整体性能。当硬盘存取零碎数据时需要不断地在硬盘与内存之间交换数据,如果有大缓存,则可以将那些零碎数据暂存在缓存中,减小外系统

2015-12-29 20:14:55 886

转载 网络字节顺序

网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian排序方式。1、网络与主机字节转换函数:htons ntohs htonl ntohl (s 就是short l是long h是host n是network)2、不同的CPU上运行不同的操作系统,字节序也是不同的为了进行转

2015-12-29 20:13:55 877

原创 .net连接oracle 预编译写法

Dim slqinsert As String slqinsert = "insert into BBS_COMMU(title,info,accessory,emp_no,emp_name,dpt_no,cre_time,action_id) values(:headline,:content,:attach,:empid,:empname,:dptid,:cretime,:actionno)"

2015-12-29 20:10:10 796

转载 extern "C"的使用要点

extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般之包括函数名。     这个功能十分有用处

2015-12-13 21:47:00 318

转载 #pragma 预处理指令详解

在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。      其格式一般为: #pragma  para      其中p

2015-12-13 11:59:38 243

转载 Linux GCC常用命令

Linux GCC常用命令1简介2简单编译2.1预处理2.2编译为汇编代码(Compilation)2.3汇编(Assembly)2.4连接(Linking)3多个程序文件的编译4检错5库文件连接5.1编译成可执行文件5.2链接5.3强制链接时使用静态链接库1简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年

2015-12-12 23:11:34 253

转载 GCC常用命令详解

GCC(GNU Compiler Collection)是Linux下最常用的C语言编译器,是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。同时它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula-3和Ada等。穿插一个玩笑: GNU意思是GNU’s not Unix而非角马。然而GNU还是一个未拆

2015-12-12 23:10:42 576

转载 nodepad++ 配置gcc

1.首先必须有gcc和g++ ,如果安装了cygwin就都ok了2.下载notepad++,这个版本可用:http://www.xiazaiba.com/html/186.html3.下载并解压 FunctionList_2_1_UNI_dll.zip。   将 FunctionList.dll 复制到Notepad++ 的 plugins 目录下。   将C++.flb、

2015-12-12 23:06:08 1215

转载 C语言__P用法

在看一些代码的时候偶然看到了一些类似于static void bad_signal __P((int))这种在定义时使用了__P的函数。__P这种东西以前没有用过,于是在网上查了下信息,结果如下(以下信息来自网络):   __P系统定义的宏,定义它的原因是ANSI C之前的老编译器不支持函数原型定义,使用__P宏为ANSI和非ANSI的编译器提供了一种可移植的方案。其定义如下:   

2015-12-06 15:51:40 2999

转载 C语言中使用extern修饰函数要注意(转)

用extern修饰函数是表示被修饰的函数定义在当前文件外,而该函数用extern声明类型后就可以被当前文件调用了。使用extern修饰某函数时,对该函数的调用是在连接阶段才被处理的。下面我们看一段代码。/*********************************************** * fun.c ******************************

2015-12-06 15:43:54 3740

转载 ifndef/define/endif作用和用法

用法:.h文件,如下:#ifndef XX_H#define XX_H...#endif这样如果有两个地方都包含这个头文件,就不会出现两次包含的情况 。。因为在第二次包含时 XX_H 已经有定义了,所以就不再 include了 #ifndef GRAPHICS_H // 防止graphics.h被重复引用#define GRAPHICS_H#in

2015-12-06 15:40:21 783

转载 为什么要用补码

二. 原码, 反码, 补码的基础概念和计算方法.在探求为何机器要使用补码之前, 让我们先了解原码, 反码和补码的概念.对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式.1. 原码原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:[+1]原 = 0000 0001

2015-12-06 14:12:01 314

转载 C++与汇编

1.指针 任何指针对汇编而言都是一样的,只不过在操作的时候才有区别 mov         byte ptr [eax],2    mov         dword ptr [ecx],4019999Ah  2.指针和引用汇编层是一样的004012FB   lea         ecx,[ebp-4]  004012FE   push        

2015-12-06 13:07:33 375

转载 cmp(compare)指令

cmp(compare)指令进行比较两个操作数的大小例:cmp oprd1,oprd2为第一个操作减去第二个操作数,但不影响第两个操作数的值它影响flag的CF,ZF,OF,AF,PF我们怎么判断大小呢?若执行指令后ZF=1 这个简单,则说明两个数相等,因为zero为1说明结果为0当无符号时:若    CF=1 则说明

2015-12-06 13:01:22 7802

转载 汇编语言中PTR的含义及作用

汇编语言中PTR的含义及作用mov ax,bx ;是把BX寄存器“里”的值赋予AX,由于二者都是word型,所以没有必要加“WORD”   mov ax,word ptr [bx];是把内存地址等于“BX寄存器的值”的地方所存放的数据,赋予ax。由于只是给出一个内存地址,不知道希望赋予ax的,是byte还是word,所以需要用word明确指出!所以,当两个操作数的宽度不一样时,

2015-12-06 12:51:26 11298

原创 c language inline asm

__asm__("assembly code": "=a"(result):"d"(data1),"c"(data2));把变量data1存放在edx寄存器中, 把c变量data2存放到ecx寄存器中, 内联汇编的结果将存放在eax寄存器中, 然后传送给变量result int aa=10, bb=20, cc=30;__asm__("add %%bx,

2015-12-05 22:04:41 542

原创 C Inline asm

1:   插入到 C 代码中的汇编语句是以":"分隔的2:限定符意义"m"、"v"、"o"内存单元"r"任何寄存器"q"寄存器eax、ebx、ecx、edx之一"i"、"h"直接操作数"E"和"F"浮点数"g"任意

2015-12-03 21:27:47 711

转载 printf_系统调用过程分析_write() putc() 函数实现

printf_系统调用过程分析_write() putc() 函数实现   系统调用”是操作系统提供给用户程序进行调用的一些服务。这些服务是系统预先提供的函数,在这一点上系统调用与普通的用户程序是没有区别的。而区别则在于“系统调用”是由操作系统提供给用户的,这些服务更接近底层或者要求的安全性更高,因此由操作系统来统一实现和管理。    程序员在写程序的过程中会经常需

2015-12-02 22:50:12 634

转载 memcpy与memmove区别

头文件:#include memmove() 用来复制内存内容,其原型为:    void * memmove(void *dest, const void *src, size_t num);memmove() 与 memcpy() 类似都是用来复制 src 所指的内存内容前 num 个字节到 dest 所指的地址上。不同的是,memmove() 更为灵活,当src 和 de

2015-12-02 22:47:53 326

转载 c语言变量名称与变量

c语言变量名称与变量 0x00030 , 0x00031 ,0x00032 ,0x00033 是四个字节,用来存放0x00010(字母a的地址)  好文要顶 关注我 收藏该文

2015-12-02 22:46:37 861

转载 C语言中的位拷贝与值拷贝浅谈(转载)

注:C语言实现的PHP变量的赋值过程中,就涉及到了 深拷贝和浅拷贝    位拷贝拷贝的是地址(也叫浅拷贝),而值拷贝则拷贝的是内容(深拷贝)。深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源重新分配,这个过程就是深拷贝,反之,没有重新分配资源,就是浅拷贝。  位拷贝,及"bitwise assignment"是指将一个对象的内存映像按位原封不

2015-12-02 22:45:29 476

转载 “浅拷贝”与“深拷贝”

“浅拷贝”与“深拷贝”       C++中对象的复制就如同“克隆”,用一个已有的对象快速地复制出多个完全相同的对象。一般而言,以下三种情况都会使用到对象的复制:(1)建立一个新对象,并用另一个同类的已有对象对新对象进行初始化,例如:[cpp] view plaincopyclass Rect  {  private:      int width;  

2015-12-02 22:44:34 226

转载 c malloc分配内存

c malloc分配内存     php中的内存分配有用类似emalloc这样的函数,emalloc实际上是C语言中的malloc的一层封装,php启动后,会向OS申请一块内存,可以理解为内存池,以后的php分配内存都是在这块内存池中进行的,以至于efree,也不会向OS退回内存,而只是设置标志位,标识efree这块内存不再使用了,这样做的好处是,速度快,避免系统调用,因为

2015-12-02 22:38:50 357

转载 汇编语言:TEST

汇编语言:TEST2.Test的一个非常普遍的用法是用来测试一方寄存器是否为空:test ecx, ecx jz somewhere如果ecx为零,设置ZF零标志为1,Jz跳转

2015-12-02 22:37:36 7558

转载 核中汇编写的字符串函数代码分析

核中汇编写的字符串函数代码分析*************************************************************** 开始啃用汇编写的字符串函数: *************************************************************** ------------------------

2015-12-02 22:36:49 681

转载 汇编语言---字符串操作指令

汇编语言---字符串操作指令字符串操作指令的实质是对一片连续的存储单元进行处理,这片连续的存储单元由隐含指针DS:SI或ES:DI来指定;字符串操作指令可对内存单元按照字节、字、双字进行处理,并能根据操作对象的字节数使变址寄存器SI/DI增加或减少1、2、4字节;规定如下:A.当DF=0时,变址寄存器SI/DI增加1、2、4字节;即:变址寄存器SI/DI递增的步长可以是1、

2015-12-02 22:35:11 1589

转载 汇编语言---函数调用栈

汇编语言---函数调用栈当发生函数调用的时候,栈空间中存放的数据是这样的:1、调用者函数把被调函数所需要的参数按照与被调函数的形参顺序相反的顺序压入栈中,即:从右向左依次把被调函数所需要的参数压入栈;2、调用者函数使用call指令调用被调函数,并把call指令的下一条指令的地址当成返回地址压入栈中(这个压栈操作隐含在call指令中);3、在被调函数中,被调函数会

2015-12-02 22:33:12 1970

转载 GCC 内联汇编

来源:IBM用汇编编写的程序虽然运行速度快,但开发速度非常慢,效率也很低。如果只是想对关键代码段进行优化,或许更好的办法是将汇编指令嵌入到 C 语言程序中,从而充分利用高级语言和汇编语言各自的特点。但一般来讲,在 C 代码中嵌入汇编语句要比"纯粹"的汇编语言代码复杂得多,因为需要解决如何分配寄存器,以及如何与C代码中的变量相结合等问题。 GCC 提供

2015-12-02 22:32:29 1156

转载 AT&T汇编与GCC内嵌汇编语法

讨论AT&T的汇编语法,以及GCC的内嵌汇编语法。0.3.2 Syntax1.寄存器引用引用寄存器要在寄存器号前加百分号%,如“movl %eax, %ebx”。80386有如下寄存器:8个32-bit寄存器 %eax,%ebx,%ecx,%edx,%edi,%esi,%ebp,%esp;8个16-bit寄存器,它们事实上是上面8个32-bit寄存器的低16位:%ax,

2015-12-02 22:31:53 429

转载 Linux 汇编语言(GNU GAS汇编)开发指南

用汇编编写的程序虽然运行速度快,但开发速度非常慢,效率也很低。如果只是想对关键代码段进行优化,或许更好的办法是将汇编指令嵌入到 C 语言程序中,从而充分利用高级语言和汇编语言各自的特点。但一般来讲,在 C 代码中嵌入汇编语句要比"纯粹"的汇编语言代码复杂得多,因为需要解决如何分配寄存器,以及如何与C代码中的变量相结合等问题。 GCC 提供了很好的内联汇编支持

2015-12-02 22:30:17 3140

转载 汇编语言---GCC内联汇编

GCC支持在C/C++代码中嵌入汇编代码,这些代码被称作是"GCC Inline ASM"(GCC内联汇编);一、基本内联汇编GCC中基本的内联汇编非常易懂,格式如下:__asm__ [__volatile__] ("instruction list");其中,1.__asm__:它是GCC定义的关键字asm的宏定义(#define __asm__ asm),它用来声明一个

2015-12-02 22:28:51 987

原创 gcc 内联asm

1.基本的内联汇编1)asm格式   http://blog.csdn.net/guzhou_diaoke/article/details/8393548GNU的C编译器使用asm关键字指出使用汇编语言编写的源代码段落。基本格式:asm("assembly code");括号中的汇编格式:指令必须在引号里;指令超过一条,必须使用新行字符分隔。如:[cpp] vi

2015-12-02 22:19:12 4825

转载 条件编译

一般情况下,源程序中所有的行都参加编译。但有时希望对其中一部分内容只在满足一定条件下才进行编译,即对一部分内容指定编译条件,这就是“条件编译”(conditional compile)。条件编译语句排版时,需考虑以下三种位置:1)条件编译语句块与函数定义体之间不存在相互嵌套(主要在(.h)文件中);2)条件编译语句块嵌套在函数体之外(主要在(.c)文件中);3)条件编译语句嵌套在函

2015-12-01 19:41:18 792

最小操作系统制作过程

这是一个不错的资源 帮助那些想学习 并且想自己写操作系统的人员

2014-10-27

c指针详解(经典,非常详细)

比较适合有一定基础的c学习者 使用者 开发者 以及爱好者

2014-10-17

空空如也

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

TA关注的人

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