C语言中buffer到底是什么意思?是数组?缓冲区?为什么一般C程序中都不定义他直接拿来用呢?

Python011

C语言中buffer到底是什么意思?是数组?缓冲区?为什么一般C程序中都不定义他直接拿来用呢?,第1张

C语言中buffer是缓冲区的意思。

定义是不能拿过来直接用的,因为它肯定是在别的地方定义的,比如头文件,或者是个全局变量等。一般是在编译器里面,右键这个变量,选gotodifination就可以看到它在哪定义的了。

缓冲区它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。

扩展资料

C语言循环buffer的实现

#ifdefined(__CIRCLE_BUFFER__)

//"circle_buffer.h"

#ifndef__CIRCLE_BUFFER_H__

#define__CIRCLE_BUFFER_H__

#ifdefined(__CIRCLE_BUFFER__)

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#include<assert.h>

typedefunsignedcharcb_u8

typedefunsignedshortintcb_u16

typedefunsignedintcb_u32

typedefsignedcharcb_s8

typedefsignedshortintcb_s16

typedefsignedintcb_s32

typedefcharcb_char

typedefenum{cb_false,cb_true}cb_bool

typedefstruct{

cb_u8*bufptr

cb_u32buflen

cb_u32datalen

cb_u32readpos

cb_u32writepos

}CircleBufferMngr

typedefstruct{

void(*cb_init)(CircleBufferMngr**,cb_u32)

void(*cb_deinit)(CircleBufferMngr**)

void(*cb_info)(CircleBufferMngr*,cb_char*,cb_u32)

cb_u32(*cb_read)(CircleBufferMngr*,cb_u8*,cb_u32)

cb_u32(*cb_write)(CircleBufferMngr*,cb_u8*,cb_u32)

cb_u32(*cb_datalen)(CircleBufferMngr*)

cb_bool(*cb_full)(CircleBufferMngr*)

cb_bool(*cb_empty)(CircleBufferMngr*)

}CircleBufferApi

#defineCB_MEMCPYmemcpy

#defineCB_MEMSETmemset

#defineCB_SPRINTsprintf

#defineCB_MALLOCmalloc

#defineCB_MFREEfree

#defineCB_ASSERTassert

#defineCB_SNPRINTsnprintf

#defineCB_TRACEprintf

//锁定,禁止中断和任务调度

#defineCB_GLOBAL_LOCK

#defineCB_GLOBAL_UNLOCK

externconstCircleBufferApicircleBufApi

#defineCBMA_INITcircleBufApi.cb_init

#defineCBMA_DEINITcircleBufApi.cb_deinit

#defineCBMA_INFOcircleBufApi.cb_info

#defineCBMA_READcircleBufApi.cb_read

#defineCBMA_WRITEcircleBufApi.cb_write

#defineCBMA_DATALENcircleBufApi.cb_datalen

#defineCBMA_FULLcircleBufApi.cb_full

#defineCBMA_EMPTYcircleBufApi.cb_empty

#endif/*__CIRCLE_BUFFER__*/

#endif/*__CIRCLE_BUFFER_H__*/

buffer就是缓冲区的意思

为什么一般C程序中都不定义他直接拿来用呢?

这个不可能,C语言有着严格的语法。不定义不能拿过来直接用。肯定是在别的地方定义的,如头文件,或者是个全局变量等。一般在编译器里面,右键这个变量,选go to difination(就是转到定义)就可以看到它在哪定义的了。

它一般用来定义数组,因为它本身的意思就是“缓冲区”,在C语言里,数组就是个缓冲区,所以用常常用它。

用它没有别的意思,就是方便记,你可以用shuzu mydata甚至你自己名字的拼音都行,主要是用它别人也很容易懂这个变量是搞啥的。