缓冲区buffer!内存!

时间:2022-12-06 12:18:57
最近开始学习delphi ,发现很多地方弄不动,今天在程序里看见缓冲区buffer!
有迷茫了,到底缓冲区buffer!他和内存有什么关系呢?

7 个解决方案

#1


程序中的任何数据都是存在内存中,不知道你说的缓冲区指什么,也许就是一个变量或指针

#2


说cache吧?

穷死了.兄弟姐妹们帮帮忙找点兼职工作.(合肥地区和基于网络的都可以)
--------------------------------------------------------------------

据查证 hammer_shi(@农业专家@(*暂时是菜鸟*))为激进分子,该账号已删除.  

#3


狂昏~~~~刚才写了N多的内容变成“该页无法显示”了。

faint,重新写。

打个比喻,开汽车的时候,从司机开始刹车到汽车停止的时候,汽车的加速度不断变慢,直到为0。所花的时间内汽车行驶的路程可以称呼为缓冲区。呵呵

另外一个更加形象一点的比喻。我给你500公斤西瓜,由于西瓜的存在是合理的,而且还是有体积的,所以就要占据一定的地方来保存,来保存西瓜的地方可以是房间,可以是地上,当然也可以在人的肚子里。这个保存西瓜的地方就相当于Buffer。

再在程序中举例子。
GetWindowsDirectory,第一个参数传入缓冲区地址,第二个传入缓冲区大小。
就是操作系统要把一些标号了的西瓜给你(每个西瓜分别标为C : \ W i n d o w s或者其他的内容),你比需要有地方来保存,你事先不知道有多少个西瓜,你可以拉200个人来准备吃西瓜,一个人吃一个,一定要吃完。200个人站成一排,然后让领头的进GetWindowsDirectory函数,并通过第二个参数来通知操作系统有200个人要来吃西瓜,操作系统就一个人分给一个西瓜,直到把西瓜分完或者人数不够了,然后在让这些人出来。

这些人就是缓冲区拉~~~~呵呵

#4


写成代码就是:
var pBuffer:PChar;
begin
  getMem(pBuffer,200);//准备200个人来吃西瓜,呵呵
  ZeroMemory(pBuffer,200);//缓冲区置0,
  GetWindowsDirectory(pBuffer,200);//将领头的地址和人数通知给操作系统,由操作系统来分每个人一个西瓜,
  ....
  freeMem(pBuffer,200);//失去了利用价值的人,杀无赦 ;)
end;

#5


呵呵,楼上的可真幽默啊

#6


缓冲区就是内存的一部分,简单的说就是------ 一部分内存:)
Microsoft OLE DB Provider for SQL Server 错误 '80040e31' 

超时已过期 

/Expert/reply.asp,行105

#7


Eastunfail(恶鱼杀手) 你说的太好太精彩了,我一下子就明白啊!请问你的qq号是多少啊!我要拜师啊!可不可以啊啊!

#1


程序中的任何数据都是存在内存中,不知道你说的缓冲区指什么,也许就是一个变量或指针

#2


说cache吧?

穷死了.兄弟姐妹们帮帮忙找点兼职工作.(合肥地区和基于网络的都可以)
--------------------------------------------------------------------

据查证 hammer_shi(@农业专家@(*暂时是菜鸟*))为激进分子,该账号已删除.  

#3


狂昏~~~~刚才写了N多的内容变成“该页无法显示”了。

faint,重新写。

打个比喻,开汽车的时候,从司机开始刹车到汽车停止的时候,汽车的加速度不断变慢,直到为0。所花的时间内汽车行驶的路程可以称呼为缓冲区。呵呵

另外一个更加形象一点的比喻。我给你500公斤西瓜,由于西瓜的存在是合理的,而且还是有体积的,所以就要占据一定的地方来保存,来保存西瓜的地方可以是房间,可以是地上,当然也可以在人的肚子里。这个保存西瓜的地方就相当于Buffer。

再在程序中举例子。
GetWindowsDirectory,第一个参数传入缓冲区地址,第二个传入缓冲区大小。
就是操作系统要把一些标号了的西瓜给你(每个西瓜分别标为C : \ W i n d o w s或者其他的内容),你比需要有地方来保存,你事先不知道有多少个西瓜,你可以拉200个人来准备吃西瓜,一个人吃一个,一定要吃完。200个人站成一排,然后让领头的进GetWindowsDirectory函数,并通过第二个参数来通知操作系统有200个人要来吃西瓜,操作系统就一个人分给一个西瓜,直到把西瓜分完或者人数不够了,然后在让这些人出来。

这些人就是缓冲区拉~~~~呵呵

#4


写成代码就是:
var pBuffer:PChar;
begin
  getMem(pBuffer,200);//准备200个人来吃西瓜,呵呵
  ZeroMemory(pBuffer,200);//缓冲区置0,
  GetWindowsDirectory(pBuffer,200);//将领头的地址和人数通知给操作系统,由操作系统来分每个人一个西瓜,
  ....
  freeMem(pBuffer,200);//失去了利用价值的人,杀无赦 ;)
end;

#5


呵呵,楼上的可真幽默啊

#6


缓冲区就是内存的一部分,简单的说就是------ 一部分内存:)
Microsoft OLE DB Provider for SQL Server 错误 '80040e31' 

超时已过期 

/Expert/reply.asp,行105

#7


Eastunfail(恶鱼杀手) 你说的太好太精彩了,我一下子就明白啊!请问你的qq号是多少啊!我要拜师啊!可不可以啊啊!