谁能给我解释一下BUFSIZ,在线等待。

sunheroshang 2003-08-04 09:39:05
谁能给我解释一下BUFSIZ是什么,用法、意义?看了msdn,还是不是很明白。比如在下面的一个函数中如何解释。
CString CMapLayer::GetFirstPara(CString& str)
{
int i, j;
char* buf;

buf = (char*)LPCTSTR(str);
for(i=0;i<BUFSIZ - 1 && buf[i] == ' '; i++);
for(j=i;j<BUFSIZ - 1 && buf[j] != ' '; j++);
return str.Mid(i, j-i);
}
...全文
1175 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
c0der 2003-08-04
  • 打赏
  • 举报
回复
BUFSIZ是定义在rum-time library里的,你也可以重新定义BUFSIZ的大小。在stdio.h里面是这样定义的:

#if defined(_M_MPPC)
#define BUFSIZ 4096
#else /* defined (_M_MPPC) */
#define BUFSIZ 512
#endif /* defined (_M_MPPC) */


//_M_MPPC:Defined for Power Macintosh platforms
sunheroshang 2003-08-04
  • 打赏
  • 举报
回复
应该不是#define BUFSIZ ...,可以随便见一个项目,在里面引用BUFSIZ。msdn中“BUFSIZ is the required user-allocated buffer for the setvbuf routine.”
sunheroshang 2003-08-04
  • 打赏
  • 举报
回复
c0der()兄真乃高人,函数确实是做那样的工作的。“BUFSIZ是一个全局的常量,程序中加入条件限制,防止访问内存越界”,它是自己定义的全局常量,还是Window定义的(我是将别人的一部分代码用到自己的程序中来了)。上面的函数,在处理同一文件时,有时会发生内存越界,但有时又没有,是怎么回事呢。还望再给予指教,分不够了,再另外起贴补上。
孤必有邻 2003-08-04
  • 打赏
  • 举报
回复
是不是
#define BUFSIZ ...
c0der 2003-08-04
  • 打赏
  • 举报
回复
这个函数其实就是获取一段在空格之间的字符串。
假如str="command param";
经过两个for循环
for(i=0;i<BUFSIZ - 1 && buf[i] == ' '; i++);
for(j=i;j<BUFSIZ - 1 && buf[j] != ' '; j++);


后,则str.Mid(i,j-1) =="param";
BUFSIZ是一个全局的常量,程序中加入条件限制,防止访问内存越界。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧