![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
浅思
jun7118
这个作者很懒,什么都没留下…
展开
-
为啥要使用全局变量
1.只能获取变量的值,没法获取变量的状态。比如变量是否可用,变量所有者是否已经初始化并开始工作生产数据,所有者有没有出现异常,变量是否是临界资源,整个数据块是否已经完整更新,只有上帝知道。2.小概率判断变赋值if(gVar=1),手滑手滑。3.没有使用者权限控制,谁都可以改,安全没法保证,总有刁民要害朕。4.难以追溯数据流,可能多生产者多消费者,调试起来贼酸爽。5.变量的所有者责任人不明,有的变量可能放在什么miscVar.c shareVar.c里面,这锅是哪个的,出来一下。6.功能块原创 2022-05-29 18:17:25 · 874 阅读 · 1 评论 -
广度优先,dijkstra和A*的寻路走迷宫
广度优先算法: 四周扩散,每次步进一格,能找到起点到终点的最短路径。不能计算路径的cost。dijkstra算法: 三个set,总set,已确定最小cost set,未确定最小cost set。 四周扩散,优先从未确定最小cost set中pop出到起点cost最小节点,加入已确定set,并更新此节点周围未确定最小cost的节点cost。 精髓在于每次迭代,都优先pop最小cost,保证已确定cost set节点一定能最小cost。 能计算每个点到起点的cost...原创 2021-03-18 21:12:19 · 469 阅读 · 0 评论 -
目测一个 阿里云 C-SDK mqtt通信小bug
版本3.0.1IOT_MQTT_Yieldwrapper_mqtt_yield_mqtt_cycleiotx_mc_cycleiotx_mc_read_packet三次read,一次用来判断是否有数据来,一次用来解析包长,一次用来收取整个包。 rc = c->ipstack.read(&c->ipstack, c->buf_r...原创 2019-06-21 20:33:35 · 802 阅读 · 0 评论 -
网络通信解决了什么问题
通信,首先应该主要分为两类,一类是点对点,一类是广播,最首要的问题是要标识每一个节点的身份问题,我是谁,我要跟谁通信,mac地址是世界唯一的地址,当然你也可以手动配置,为什么要世界唯一,保证世界任意的电脑组网不会产生冲突,就像身份证编号一样。身份的问题解决了,但是单个节点的能力有限,不可能所有的节点都接入一个网络,一个节点记住所有的节点信息,所以只能组成一个个子网,层层嵌套,组成广域网原创 2016-10-15 13:30:01 · 1406 阅读 · 0 评论 -
CAN总线
can总线的精髓在于,物理总线上的单数据位0和1的与特性,以及数据位流的5同一反的特性。物理总线上的单数据位0和1的与特性,使能单一物理总线上的总线仲裁,从而使能了多主机机制。数据位流的5同一反的特性,使能出错管理和鉴定。原创 2016-11-03 21:09:50 · 337 阅读 · 0 评论 -
计算机社会学
每一台嵌入式系统可以比喻成 一个公司(或者车间),应用程序是老板,由若干原材料(数据流),生产出产品(数据流处理后打包),实现某种一些需求(输送给下游)。linux广泛的支持绝大部分的平台,无论是哪个公司都可以胜任,所以他是一个服务端,作为服务端就必定会要支持所有管理办法(协议工序),当然总集是一个有限的集合,他只管抽象不管细节,每个公司的员工都各不相同,但都必须要满足特定要求有相应技能,原创 2016-08-13 23:43:34 · 675 阅读 · 0 评论 -
计算机语言的思考
先有机器语言(都是一些01串),然后出现汇编(01串的助记符)学习难,应用难,移植差,小众阻碍计算机科学普及和发展速度,之后抽象出人类思考基本过程,出现C语言,随着科技进步,C语言不利于构建大的工程,然后出现面向对象语言(C++),然后更加集成化的脚本语言(Python等) 能让更多人接受更少的训练或者学习,能够享受计算机科技带来的便利,也是让人们更多的专注于设计和应用,而不是关注底层实现。有点类原创 2016-03-13 16:05:02 · 383 阅读 · 0 评论 -
计算机仿生学
计算机算不算仿生学,高级脑是cpu,低级脑是各种controller 控制各种硬件和内核线程(潜意识,非条件反射,记忆,呼吸心跳眨眼等维持生命的活动什么的),并且屏蔽硬件,提供操作(人感觉不到神经肌肉骨骼,但是可以跑啊,跳啊,执行许多复杂动作),脊柱是外部总线,神经末梢是传感器,也是信号线,肌肉是执行件,显意识是用户进程,潜意识是内核,人应该算是单核多进程的系统。短期的7个条目的记忆算是cpu内部原创 2016-03-13 16:05:45 · 2758 阅读 · 0 评论 -
论提升
阅读 纸质的书,电子媒体,是一个人一段时间(几年甚至几十年)对特定领域知识体系的学习,实践后的认识思考的总结,对特定行业发展的记录和分析,经历过后的反思,构建自己的理论体系以及提出某些方法论,跳过的坑,给予我们看待同一事物的另一个视角,或者指明方向少走弯路,或者新领域的一个整体的认识,一个方向,单向的传播被动接收难以反馈,有许多的东西难以用文字传播,最新的前沿技术没有,最高深核心的以及某些细节原创 2016-03-13 16:08:52 · 285 阅读 · 0 评论 -
通信的思考
万物都在通信,只是通信协议不一样,就像人与人交流,通过喉咙震动,利用空气介质传播(物理层),耳膜震动,神经传递,协议是汉语,都遵循主谓宾定状补等等的语法,眼睛看也是一样,光介质(物理层),单对单交流就基本用不上什么切片啊重传,如果要远距离传输或者多播就要靠书籍或者视频,跟网络通信也是类似的,切片:书一本一本,视频一集一集的,重传,窗口等的。电子器件之间通过电信号通信,串行并行(并行也是一种串),时原创 2016-03-13 16:09:39 · 281 阅读 · 0 评论 -
游戏挂机机器人框架
非动作类游戏,一般对实时性要求不高,一般有几种事件:1、快速的事件,几秒钟或者十几秒发生一次;2、慢速事件,几分钟或者几十分钟触发一次,时间间隔相对固定; 3、定时事件,一般是中午12点或者晚上6点,发体力或者做活动;4、集中事件,一般是活动,比如答题什么的,这种一般还是手动操作,没必要机器做: 1重复度不高,2时间较短,3复杂度高,当然非得要机器做也可以,等价于定时原创 2016-03-13 16:11:40 · 1047 阅读 · 0 评论 -
人为什么会生病
微观上把人的免疫力拟人化,抽象成士兵,士兵都有战斗值, 人与外部的交互不外乎空气,食物,水,光, 化学物质 以及细菌病毒外表皮和内表皮(个人发明的名词) 内部分裂失败细胞 化学反应副产品 保持战斗力需要补给 也就是能量(碳水化合物)和兵器(维生素,微量元素什么的) 营养不良 缺少运动 宏观上细胞 组织 器官系统 零件合件组件部件材料力学 任何材料都有屈服极限,材料受外原创 2016-03-17 21:33:03 · 293 阅读 · 0 评论 -
状态机,消息循环,框架
任何一个相对独立的对象,都可以被抽象成一个状态机(其实任何事物都是以某种状态存在于世界中的,事物之间交互使得状态发生转移),每个状态机有若干个对所建模型有实际意义的状态,以及状态之间相互转变的触发条件,当触发条件也就是事件发生,状态发生转移,这就像面对对象的类,类里面封装有数据,还有方法接口,数据也就是状态机的状态,接口就是改变状态机状态的方法,大的状态机必然由数个小的状态机组成,所以类中有类和私原创 2016-03-19 09:40:31 · 1865 阅读 · 0 评论 -
当然我是在扯谈
前一段时间阿尔法go打败韩国棋手,人类的创造力还真是有无限的可能。由摩尔定律指出硬件是在不断的提升,在绝大多数的日常领域都已经溢出了人们的需求。各种延迟已经超出人类的感知水平,而且大多数的应用程序都已经落后于硬件的发展,软件已经无法很好的或者完全的利用硬件。 如果把人计算机化(可参考《计算机仿生学》一文),可以发现人类近期以来硬件应该是没有大的进化的,人类获取资讯的手段不外原创 2016-05-04 22:50:40 · 448 阅读 · 0 评论 -
程序与程序员
程序是用编程语言中的容器来抽象出现实世界的对象(人类认识世界或者由物质世界映射到精神世界的方法 最为本质的应该是量化(整数,浮点数) 以及 标签化(变量名,方法名,字符串,结构体) 或者说是键值对),再由元逻辑if...else... 对对象进行操作,由屏幕或者各种输出设备显示结果或者更正确的说法是显示状态机的状态。原创 2016-06-26 21:36:09 · 241 阅读 · 0 评论 -
C的面对对象引出C++
C语言用的越多,越能理解为什么会有C++的诞生继承C语言不能继承只能包含,一个结构体包含另外一个结构体,所以当你要调用继承的属性或者方法时候,会发现d->c->b->a这种情况,当然嵌套这么深的情况不多见。重载一般是通过传函数指针或者事先定义好的指令实现,最为熟知的就是ioctl和qsort。默认参数显式调用各种初始化函数,在函数里面进行判断,如果有值则不管,没值就赋一个默原创 2016-07-10 19:20:05 · 251 阅读 · 0 评论 -
计算机杂谈
计算机,顾名思义就是做计算的,从一个端口接收数据流,进行处理,然后再从里另外一个端口把数据流发送出去linux把数据流抽象成文件,统一的接口open ,close , read ,write, ioctl 等等往下抽象 创建或释放缓冲区 填充缓冲区 发送缓冲区 控制数据流到最最底层,字节流,最笨的方法,用gpio来模拟通信,完全的占用了cpu,然后产生了各种外部模块,发送或接收单原创 2016-07-11 22:10:29 · 202 阅读 · 0 评论