首页 > 其他分享 >fread实现getchar(加速!!!)

fread实现getchar(加速!!!)

时间:2023-08-15 11:24:36浏览次数:37  
标签:p2 字符 p1 读取 get fread buf 加速 getchar

fread实现的getchar代码:

inline char get() {
	static char buf[100000], *p1 = buf, *p2 = buf;
	return p1 == p2 && (p2 = (p1 = buf) + fread(buf,1,100000,stdin),p1 == p2) ? EOF : *p1 ++;
}

以下内容由chatgpt生成:

上面的代码定义了一个名为get()的内联函数,它从标准输入读取字符并返回。

首先,该函数使用了一个静态字符数组buf,大小为100000。静态数组意味着它在函数调用之间保持不变,所以每次调用get()函数时,buf的内容会保留,而不会重新分配内存。

然后,函数定义了两个指针变量p1p2,并将它们初始化为指向buf的首地址。这两个指针变量用于指示当前已经读取的字符位置。

接下来,函数返回一个表达式的结果,该表达式首先检查p1是否等于p2,这意味着当前的字符已经全部被读取完毕,需要重新从标准输入读取。如果是这种情况,以下操作将被执行:

  1. buf重新填充为从标准输入读取的字符,最多读取100000个字符。
  2. p1p2分别重置为buf的首地址,并检查p1是否等于p2。如果仍然相等,意味着文件结束,返回EOF。
  3. 否则,返回p1所指向的字符,并将p1向前移动一个位置,以指示下一个要返回的字符。

如果p1p2不相等,即还有未读取的字符,那么返回p1所指向的字符,并将p1向前移动一个位置。

这样,每次调用get()函数时,它将返回标准输入中的下一个字符,并且在内部会自动处理缓冲区的读取和填充。

标签:p2,字符,p1,读取,get,fread,buf,加速,getchar
From: https://www.cnblogs.com/znpdco/p/17630777.html

相关文章

  • WAVE SUMMIT2023六大分会场同步开启,飞桨+文心大模型加速区域产业智能化!
    由深度学习技术及应用国家工程研究中心主办、百度飞桨和文心大模型承办的WAVESUMMIT深度学习开发者大会2023将于8月16日重磅来袭!届时上海、广州、深圳、成都、南昌和宁波六大分会场将同步开启!分会汇聚区域产业大咖、科研机构专家、知名学者和技术大牛,通过主题演讲和深度交流等形式......
  • 天翼云加速落地紫金DPU实践应用,让算力供给更高效!
    近日,以“智驱创新·芯动未来”为主题的第三届DPU峰会在北京成功举办。会上,天翼云凭借紫金DPU在架构革新、算力释放、场景落地等多方面的成果,荣膺“2023芯星品牌奖”,技术实力与品牌影响力再获行业认可。天翼云科技有限公司基础架构事业部高/级产品经理雷晓龙在技术生态论坛发表了题......
  • 5个代码技巧,加速你的Python! 转载
    原文:https://mp.weixin.qq.com/s/xLIlcXfW1O8sNxGT7RvKrQ来自公众号:快学PythonPython作为一种功能强大的编程语言,因其简单易学而受到很多初学者的青睐。它的应用领域又非常广泛:科学计算、游戏开发、爬虫、人工智能、自动化办公、Web应用开发等等。而在数据科学领域中,Python是......
  • 免费拥有自己的 Github 资源加速器
    TurboHub是一个免费的Github资源加速下载站点,可以帮助你快速下载Github上的资源。其核心逻辑是通过AzureStaticWebApps服务和AzureFunctions服务,将Github上的资源通过中间服务器进行转发,从而实现加速下载的目的。由于每个使用Azure的用户都可以免费的额度部署A......
  • 【专题】周期、赋能、跃升-中国科技类消费电子产业正在进入新一轮加速裂变报告PDF合集
    在后疫情时代,全球经济和消费力的增长面临巨大考验。2022年,电脑、手机等产品的市场规模出现了小幅收缩调整。然而,在这样的环境下,各种消费电子的细分领域却展现出了强大的韧性。阅读原文,获取专题报告合集全文,解锁文末29份消费电子行业相关报告。智能手表、真无线耳机、AR/VR眼镜、户......
  • 图加速数据湖分析-GeaFlow和Apache Hudi集成
    表模型现状与问题关系模型自1970年由埃德加·科德提出来以后被广泛应用于数据库和数仓等数据处理系统的数据建模。关系模型以表作为基本的数据结构来定义数据模型,表为二维数据结构,本身缺乏关系的表达能力,关系的运算通过Join关联运算来处理。表模型简单且易于理解,在关系模型中被广......
  • Maven多模块构建加速方案
    Maven多模块构建加速方案          拥有大量Maven模块会减慢项目构建和测试运行速度。为了维护多模块项目结构并快速运行测试,我们开发了一个新工具--Maven模块合并器,它帮助我们将某些构建时间从50分钟缩短到12分钟。在本文中,我将详细介绍Maven模块合并器帮......
  • 【专题】研发驱动中国消费电子品牌 加速实现国际化与高端化报告PDF合集分享(附原数据表
    在后疫情时代,全球经济和消费力的增长面临巨大考验。2022年,电脑、手机等产品的市场规模出现了小幅收缩调整。然而,在这样的环境下,各种消费电子的细分领域却展现出了强大的韧性。阅读原文,获取专题报告合集全文,解锁文末29份消费电子行业相关报告。智能手表、真无线耳机、AR/VR眼镜、户......
  • RFID技术助力电子烟行业加速发展
    RFID技术助力电子烟行业加速发展近年来,电子烟行业迅速发展,不仅在全球范围内受到广泛关注,而且在市场上也取得了令人瞩目的成绩。为了提高电子烟行业的效率和管理水平,RFID技术被广泛应用于电子烟生产和销售环节。本文将通过一个实际案例,介绍RFID技术在电子烟行业的应用,展示其对于生产......
  • 图像处理,加速
    遍历图片:关于Python使用numba加速图像遍历_python加速cv2代码_FlyDremever的博客-CSDN博客python日记(二):密集计算加速(双重for循环为例)_pythonfor循环加速_五月的echo的博客-CSDN博客卷积时加速:python图像遍历优化的方法总结(以中值滤波为例)_陨星落云的博客-CSDN博客for循......