GodZza

导航

随笔分类 -  C++

一个RingBuffer(C语言)
摘要:也是用于STM32平台下. 通常用于串口通讯缓存. 之前看到一些其他项目写的Buffer缓存. 实在是太不简洁了, 而且还可能有bug. 例如 当处理数据不够快时, 缓存会直接被覆盖, 而不产生任何提示. 每次Update都判断 read指针 是否等于 write指针, 是的话又重新将 read和w 阅读全文

posted @ 2021-07-26 19:24 GodZza 阅读(684) 评论(0) 推荐(0) 编辑

一个极其简单(陋)的内存分配器
摘要:在同事的帮助下,第一次尝试了STM32程序的编写. 当然仅仅是C语言的部分, 并没有涉及到电子/硬件的操作. 相关操作还是同事实现的. 当时使用了STM32 自带的 malloc, 后来发现程序运行久了会导致卡死. 其原因至今没有查清楚, 一来是因为能力不够,二是因为时间不足. 最终是写了一个超级简 阅读全文

posted @ 2021-07-26 19:10 GodZza 阅读(91) 评论(0) 推荐(0) 编辑

不支持C++11 decltype的噩耗
摘要:前言:因为公司现在使用vs2008,所以很多c++11的新特性还未能使用,导致写了很多冤枉代码。最初引擎的数学库非常简单,使用起来也不方便,例如:float FastLerp(const float& a, const float& b, float t);vec2f FastLerp(const vec2f& a, const vec2f& b, float t);vec3f FastLerp(const vec3f& a, const vec3f& b, float t);而实现代码也很简单,把声明了的函数实现三篇(三个函数体是一样的)Fas 阅读全文

posted @ 2013-09-29 18:39 GodZza 阅读(1346) 评论(0) 推荐(1) 编辑

inet_ntoa 陷阱
摘要:前天同事问我一个关于ip被"替换"的问题,代码大概如下:ip_ local = networkMgr.GetLocalIP(); //127.0.0.1ip_ server = networkMgr.GetServerIP(); //0.0.0.0printf(" l:%s",inet_ntoa(local));printf(" s:%s \n",inet_ntoa(server));//network manager to do somethingprintf(" l:%s s:%s \n",inet_ntoa( 阅读全文

posted @ 2013-03-14 10:16 GodZza 阅读(1711) 评论(2) 推荐(1) 编辑