ToF君
这个作者很懒,什么都没留下…
展开
-
丘钛科技(01478.HK)五月出货量:晚公告背后的亮点与前景展望
潮电智库的统计数据进一步证实了这一点,今年前五个月,丘钛科技3200万像素以上的高端手机摄像头模组合计销量达8691.2万颗,占比接近一半,同比销量提升了76.2%。据6月12日的公告数据显示,丘钛科技5月手机摄像头模组销量达到3924.6万颗,同比增长35%,这一数字不仅显示了公司强大的市场竞争力,也预示了行业回暖的积极信号。报告还提到,由于智能型手机供应链的长期订单可见性较低,当前投资者对这类公司的持股可能仍显不足,这也为丘钛科技的未来发展提供了更广阔的空间。原创 2024-06-16 22:17:00 · 128 阅读 · 0 评论 -
扫地机LiDAR形态之美
系统通过测量激光脉冲的往返时间,利用光速恒定的原理,计算出物体与激光雷达之间的距离。Spot LiDAR,即点扫描激光雷达,通过快速旋转的镜面将激光束射向不同的方向,从而实现对目标区域的逐点扫描。LiDAR(Light Detection and Ranging,激光雷达)技术在扫地机器人中的应用,不仅提升了机器的智能性和实用性,还展现了一种科技与艺术的融合之美。精细的做工:扫地机器人的LiDAR部分通常具有精细的做工,无论是传感器的安装位置还是线路的布局,都体现出了制造商对产品的精益求精。原创 2024-06-16 22:16:15 · 438 阅读 · 0 评论 -
为什么我书写的汇编程序会把end后面的指令也给执行?
内存布局:在复杂的程序中,可能存在多个段(segment)或区域(section),并且这些段或区域在内存中的布局可能与源代码中的顺序不同。它的主要作用是告诉汇编器或链接器程序的逻辑结束位置在哪里,这样在生成可执行文件时可以确定程序的大小。等),以确保程序在达到逻辑结束时停止执行。代码错误:有可能是由于程序中的其他错误,如跳转指令的错误目标地址,导致程序意外地跳转到。执行环境:在某些执行环境中,如模拟器或实际硬件上,程序可能会继续执行。之后的代码实际上被放置在可执行内存的其他部分,并在执行过程中被访问。原创 2024-03-24 21:23:25 · 182 阅读 · 0 评论 -
iPhone 15 Pro LiDAR Module模组逆向(2024.3.23)
由于dToF技术使用非常短的光脉冲,并且测量的是光信号直接往返的时间,因此它能够实现亚毫米级的测量精度。当然市面上最具备影响力的是YOLE的商业评估报告,我这边同时具有这些报告,也有一些自己的见解,当然本篇讲解可能会同时涉及到几个模组厂和科研机构的逆向以及测试报告。YOLE的报告会略显中肯,对于技术的广度是够的,但是技术的深度是不够的,模组厂则相反,特别针对一个测试项,会用一些高级的设备做测试,得出一些实际项的测试报告,但是对于里面的算法和know what & know how也是不够的。原创 2024-03-24 21:21:55 · 774 阅读 · 0 评论 -
Qt如何重写closeEvent
在这个例子中,当用户尝试关闭窗口时,程序会弹出一个确认对话框,询问用户是否真的要关闭窗口。根据用户的选择,窗口要么被关闭,要么保持打开状态。创建一个新的 Qt Widgets Application 项目,或者在已有的项目中添加一个窗口类。当你关闭一个 Qt 窗口时,该窗口会接收到一个。在这个函数中,你可以添加自定义的逻辑来处理关闭事件。这只是一个基本的示例,你可以根据你的具体需求在。函数,你可以自定义窗口关闭时的行为。在你的窗口类的实现文件(例如。在你的窗口类的头文件(例如。函数中添加更复杂的逻辑。原创 2024-03-24 21:20:53 · 1017 阅读 · 0 评论 -
视角与焦距
如果需要拍摄宽广的画面,可以选择具有较大视场角的镜头,但需要注意分辨率的降低可能会影响图像的清晰度和细节表现。这是因为短焦距镜头具有更宽的视角,能够捕捉到更多的画面,而长焦距镜头则具有更窄的视角,能够放大远处的物体。此外,需要注意的是,视场角和分辨率还受到其他因素的影响,如镜头的光学性能、相机的传感器尺寸和分辨率等。需要注意的是,视场角的计算可能受到镜头畸变、传感器尺寸和拍摄距离等因素的影响。另外,视场角的大小通常以度数表示,较大的视场角意味着更宽广的视野范围,而较小的视场角则意味着更狭窄的视野范围。原创 2024-01-11 17:04:29 · 307 阅读 · 0 评论 -
汽车诊断软件开发
这可能导致在开发过程中,由于不同工程师对同一份诊断需求文件的解读出现偏差,例如开发工程师和测试工程师对同一句话的理解不同,从而导致测试不通过,需要重新回到需求定义的部分去完善或解释这条需求。需要注意的是,汽车诊断软件逆向协议是一项复杂且技术要求较高的工作,需要具备深厚的软件开发和测试基础以及对汽车行业的深入了解。汽车诊断软件公司的开发工作岗位需要具备扎实的软件开发和测试基础,熟悉汽车行业标准和规范,以及良好的沟通能力和团队协作精神。这包括诊断协议的实现、诊断服务的设计和开发、诊断功能的集成和测试等。原创 2024-01-11 17:03:06 · 288 阅读 · 0 评论 -
Qt UI框架和Duilib UI框架差别
功能和性能:Qt作为一个成熟的框架,提供了丰富的功能和性能,包括对数据库、网络、串口等功能的支持。资源和文档:Qt拥有完善的官方文档和丰富的第三方资源,这有助于开发者解决遇到的问题和提高开发效率。综上所述,Duilib框架具有开源免费、跨平台、易于使用、丰富的功能、高度定制化、良好的性能、支持多种语言、活跃的社区和广泛的应用场景等优势。许多知名的软件都是基于Qt开发的。综上所述,如果你是一个初学者,建议先学习Duilib,掌握基本的GUI编程概念和技能后,再进一步学习Qt,以构建更复杂的应用程序。原创 2024-01-09 23:34:52 · 1271 阅读 · 0 评论 -
以单颗CMOS摄像头重构三维场景,维悟光子发布单目红外3D成像模组
维悟光子团队正在基于领先的光学设计和算法能力,开发更大视场角、更大测量范围的单目红外3D相机和单目RGB-D相机,致力于为机器人、生物识别、手机/电脑、AR/VR、自动驾驶、工业/医疗检测等应用场景提供更优性能和更高性价比的3D视觉感知方案。维悟单目3D相机能够以更低的成本获取更高分辨率的点云图,让机器人可以“看到”更微小的物体和更准确的轮廓细节,同时可以在强环境光、反光/黑色物体等corner case下稳定输出正确点云,实现更好的识别和避障效果。硬件系统的轻量化和降本是3D视觉市场演进的必然趋势。原创 2023-10-11 12:18:53 · 929 阅读 · 0 评论 -
心连心,同一个地方,同一个程序员
现在开始所有一线城市和二线城市建立程序员交流群,为了防止病毒以及一些丧心病狂的广告人士,现在各大群以程序员为基础,入群者必须为程序员,严谨广告和僵尸人士入群,有想加群者加我微信,备注城市。比如想加入南京程序员交流群,备注南京,或者微信聊天窗口私聊我。原创 2023-10-02 21:10:24 · 264 阅读 · 0 评论 -
程序有哪些section,分别的作用?程序启动的过程?
中间包括代码存放的位置,程序启动的过程,运行当中的指令比较不清楚。程序启动的过程还是有些复杂的,你可能要了解操作系统,了解编译原理,而这些都源于书本教程上枯燥乏味的八股文。存放程序执行代码的一块内存区域。你可以从main函数作为分水岭去理解,你写了一个函数入口main,这个时候你已经入门,只需要再理解main函数执行前做了那些准备,main函数执行后完成了什么,就一目了然。操作系统首先创建相应的进程并分配私有的进程空间,然后操作系统的加载器负责把可执行文件的数据段和代码段映射到进程的虚拟内存空间中。原创 2022-10-16 20:38:00 · 529 阅读 · 0 评论 -
保持对新事物的好奇
我就看到过好几个博士,本来自己的专业是国内泰斗,却因为薪资放弃了从事互联网,然而大部分的程序代码本科生就能做到,并且高层次的AI算法都是基于sensor和硬件出发的,没有多年的积累并不能功成名就,这或许也是有得必有失吧。跟华为和大疆项目的交流中,绝大多数都是博士学历,因为新奇的东西对于每个人都是平等的,他们也没接触过,我们也没接触过的,但是他们会看paper,会研究写报告,会测试产品将产品导入到量产或者供应链体系里。最后,你可能会加入我的社区群里,我希望你更多的交流技术,不要吹水,更加深层次的探讨未来。原创 2022-10-07 22:44:39 · 500 阅读 · 0 评论 -
C++多重继承
当在多条继承路径上有一个公共的基类,在这些路径中的某几条汇合处,这个公共的积累就会产生多个实例(或多个副本),若想保存这个积累的一个实例,可以将这个公共基类声明为虚基类。对于虚函数的支配规则,他应该执行哪个函数的规则,对于虚函数表,这些如果没有了解框架和细则,就会造成严重的运行错误,一行代码都会引起一连串反应。多重继承容易让代码逻辑复杂,产生歧义(包括语法编译)思想混乱,一直备受争议,中小项目中较少使用,后来的Java,C#,PHP等干脆取消了多继承。我们经常熟悉的继承基本都是基于一个基类,也就是单继承。原创 2022-09-18 16:00:47 · 688 阅读 · 0 评论 -
windows获取显卡的显存
windows获取显卡名称上一篇获取显卡名称,这一篇讲获取显卡的显存。显卡显存的注册表路径位置信息依然跟上篇讲的一样,只是他的属性是确认是否能访问以及显卡信息的值是否存在获取显卡内存信息不同厂商的显卡,它们在注册表中写入信息时使用的类型不同,所以还要针对REG_QWORD,REG_DWORD,REG_BINARY去做不同的解析结果可以清晰的看出我的显卡是1024个字节也就是1G...原创 2022-08-05 20:08:24 · 543 阅读 · 0 评论 -
如何看懂万行代码
能够看懂代码,说明你掌握了语法以及代码逻辑,能够看万行代码,说明你已经对代码的架构和框架,有一定的认知。不断的阅读项目代码,开源代码,美丽而优雅的精华能够滋润你,让你不断的沉淀,未来变得更强大。如果这个项目代码有文档或者设计框架,毫无疑问这对你是幸运的,你只要按照文档去编译好这个代码,成功运行后,可以断点,可以打log,一行行的熟悉理解代码即可。如果没有文档,项目又是你陌生的开发环境,那么你可能需要请教一下前辈,前面交接的人或者说项目中一个team的人,他们或许会给你一些指导,足够让你上手。...原创 2022-08-05 20:07:44 · 495 阅读 · 0 评论 -
windows获取显卡名称
女孩子想要男孩子在家中过夜,所以说“我家有一个会发光的3090”,这样就会吸引男孩过去,毕竟没有一个男生会拒绝会发光的3090显卡。作为一个windows客户端开发工程师,在需要上报本地用户电脑的信息时,最经常需要获取显卡的信息,因为系统因素造成的问题可能有八成是显卡造成,这就是一件令人头疼的事情。网上已经介绍了很多种获取显卡的方法,但是大部分都是别人集成了库的api接口调用,这里介绍的是通过询问注册表来获取显卡的信息。检索一个已打开的注册表句柄中,指定的注册表键的类型和设置值。...原创 2022-08-05 20:07:02 · 485 阅读 · 0 评论 -
c++程序只存在一个实例(exe)的方法
在我们编写程序的时候,经常会注意到的一个问题就是如何能够让程序只运行一个实例,确保不会让同一个程序多次运行,从而产生诸多相同进程,给我们的带来不便呢?创建互斥体实现(强烈推荐新手用这个方法)CreateMutex是一个计算机函数,作用是找出当前系统是否已经存在指定进程的实例。如果没有则创建一个互斥体。这个方法是最为简单的一个方法,语法逻辑比较容易接受,后面的进程,内存,原子等操作,需要有一定操作水平的程序员才能了解。代码如下QT平台基于共享内存QSharedMemory(标准C++请参考下面)基于Qt的实现原创 2022-07-13 20:53:22 · 348 阅读 · 0 评论 -
GUI中编辑框Edit记忆路径设计
GUI的鼻祖MFC虽然做起来很不方便,但是也搞了很多人性化的设计,特别是基于windows系统的使用层面上,对于UI控件的设计有很多极好的用户体验。比如EditControl,这个控件带有记忆路径设计,还能够支持拖拽文件获得全路径,相当的了不起。记忆性路径拖拽接受文件属性QT中的QLineEdit不可否认的是,QT在ui方面做了很多改善,并且极力为开发者提供了方便,但是相对比MFC的控件来说,QT是给开发者提供了方便,并没有给用户带来更多体验的上升。在性能,以及使用习惯层面,windows的mfc依然不愧是原创 2022-07-13 20:52:35 · 309 阅读 · 0 评论 -
C++优雅的捕获处理crash
crash 由来于用户体验大家可以先看看这篇文章: dump方式保留程序崩溃现场qq 和 微信有那么多的日活用户,每个用户的机子都是不同的硬件配置,除了软件本身没有非常严重bug或者问题(例如指针异常,内存泄露,非法访问,内核崩溃),总是会出现兼容或者其他冲突性问题, 这就是不可避免的crash, 但是当crash 出现后, 怎么处理比较好呢?比如qq 崩溃后提示抱歉 qq 遇到意外情况, xxxx 然后收集 dump 就退出了。这样用户体验还可以, 如果是弹出一个默认的红框加一大串英文可能用户就骂娘原创 2022-07-13 20:51:35 · 667 阅读 · 0 评论 -
delegate的用法
背景delegate字面意思是委托,代表,会议代表,授权,选派。很多客户端工程师应该不陌生,特别是处理界面UI时,在UI库的源码里经常遇到,你可能会蹦出MVC模式,或者其他设计模式里有这个用法。正确运用它们可以轻而易举的将复杂页面打造得简洁明了、层次分明。委托概述将方法调用者和目标方法动态关联起来,委托是一个类,所以它和类是同级的,可以通过委托来掉用方法,不要误以为委托和方法同级的,方法只是类的成员。委托定义了方法的类型(定义委托和与之对应的方法必须具有相同的参数个数,并且类型相同,返回值类型相同),使得原创 2022-07-13 20:50:45 · 1149 阅读 · 0 评论 -
C++中critical section的使用
背景阅读开源代码的时候,非常多的场合会看到EnterCriticalSection和LeaveCriticalSection成对的出现,它们是代表什么意思呢,为啥见到Enter就一定会有leave成对。critical section是翻译是临界截面,临界区的意思。多线程间的通信有四个方法,包括临界区,互斥量,信号量,事件。我看了网上很多博客,似乎把critical section和互斥量搞混了,很多博客里说critical section是互斥量,准确来讲这是一个互斥变量不是互斥量。临界区critical原创 2022-07-13 20:49:42 · 777 阅读 · 0 评论 -
程序员该选择外包公司嘛
作为一个IT从业者,对于外包公司这个应该不陌生。我相信,有九成的从业者在找工作中受到外包公司的骚扰,甚至也在外包公司服务过。比较知名的外包公司比如中软国际,文思海辉,软通动力,博彦科技,浙大网新等等,简直是无孔不入,特别是在你忙于找工作的时候,有可能同一家外包的几十个hr同时联系你,因为外包公司就是一个皮包公司,里面的hr说白了就是业务员,他们只有一个目的,就是将你拉入他们的坑中。在这里,你可能也看出来了,我不喜欢外包公司,但同时我也不鄙视进入外包公司的同学。很多时候当我们找不到好的雇主时,更多的是外包公司原创 2022-07-13 20:48:25 · 302 阅读 · 0 评论 -
安卓游戏模拟器的键位设置设计
背景安卓游戏模拟器,顾名思义,就是将安卓的游戏放到windows上来玩,windows上完全模拟安卓的系统,键位设置也从安卓的触屏直接映射到键盘上,或者说键盘可以直接通过手柄来操作。当然,更高级的应用直接通过这些键位,可以做一些游戏辅助的操作,婉转一点就是一些吃鸡类游戏可以实现自动追踪,自动瞄准射击。下图为王者荣耀的键位设置,可以清晰看到键盘上的各个按键,已经映射到安卓触屏上的各个位置,包括左下角的方向行走,还有技能按键,键盘视角,观察视角等。其实你在安卓手机上虽然是触屏的,没有通过按键来操作,但是你的每次原创 2022-07-13 20:47:34 · 1434 阅读 · 0 评论 -
C++项目实现多国语言解决方案
背景在实际项目开发当中,有些需求可能会要求我们实现多种语言,这里的语言是指界面上,一般就是在客户端,特指那些老外用户使用我们的产品时,为了更好的使用客户端和上手,我们需要将语言翻译成当地的语言。当然,有时候需要同时适配十几种语言,因为产品用户波及五大洲四大洋,这个时候就需要有一个比较好的架构来实现这个需求。有些程序员可能就比较毛糙,简单的使用宏定义,或者说在代码中不断的写if...else..这样的方式是不可取,并且为项目主导者所诟病。编码问题多国语言的存在、不同语言操作系统的存在,使得针对多语言的设计颇费原创 2022-07-13 20:45:26 · 1174 阅读 · 0 评论 -
北京大学ACM Problems 1019:Number Sequence
Number SequenceTime Limit:1000MS Memory Limit:10000K Total Submissions:46616 Accepted:13519 DescriptionA single positive integer i is given. Write a program to find the digit located in the position i in the sequence of number gro...原创 2022-05-03 18:07:04 · 1319 阅读 · 0 评论 -
北京大学ACM Problems 1014:Dividing
DividingTime Limit:1000MS Memory Limit:10000K Total Submissions:81654 Accepted:21600 DescriptionMarsha and Bill own a collection of marbles. They want to split the collection among themselves so that both receive an equal share of...原创 2022-05-03 17:49:13 · 296 阅读 · 0 评论 -
北京大学ACM Problems 1013: Counterfeit Dollar
Counterfeit DollarTime Limit:1000MS Memory Limit:10000K Total Submissions:58834 Accepted:18138 DescriptionSally Jones has a dozen Voyageur silver dollars. However, only eleven of the coins are true silver dollars; one coin is coun...原创 2022-05-03 17:47:17 · 251 阅读 · 0 评论 -
STL的基本组成部分
STL也许是大部分接口侠最钟爱的库了,在实际项目当中不用自己去封装数据结构,直接调用该库的接口能够高效率的实现数据结构与算法。标准模板库(Standard Template Library,简称STL)简单说,就是一些常用数据结构和算法的模板的集合。通常认为,STL是由容器、算法、迭代器、函数对象、适配器、内存分配器这 6 部分构成,其中后面 4 部分是为前 2 部分服务的。广义上讲,STL分为3类:Algorithm(算法)、Container(容器)和Iterator(迭代器),...原创 2022-03-28 23:12:57 · 1669 阅读 · 0 评论 -
Qt和其它GUI库的对比
很多同学谈起GUI库,可能映入眼帘的是qt,mfc这两个,如果你只知道这两个说明你格局小了。世界上的GUI库多如牛毛,有的专属于linux,mac,windows等其中一个平台或者多个平台,有的跨平台使用的,有的只有UI功能,有的融和了网络通信,多媒体处理,数据库访问等底层功能。Qt中文网写的愿景是位为嵌入式和桌面应用开发而生的跨平台开发软件平台,也就是说真正在嵌入式平台发挥重大的角色的肯定是Qt无疑,在这里不讨论QT的前世和今生。Qt的强大还在于它不仅仅可以开发GUI程序,还可以开发非GUI应用程序,原创 2022-03-28 22:47:43 · 1383 阅读 · 0 评论 -
谈谈内联函数
什么是内联函数在百度百科中讲"计算机科学中,内联函数(有时称作在线函数或编译时期展开函数)是一种编程语言结构,用来建议编译器对一些特殊函数进行内联扩展(有时称作在线扩展)"。这里面的关键词是编译器,行为发生在编译阶段而非程序运行阶段,所以说你用了内联的语法,给你带来的是程序的运行时间提升但是并不会给你程序的架构以及程序结果带来改变。设计内联函数的动机内联函数是C++的增强特性之一。内联扩展用于消除调用函数时造成的固有的时间消耗,能够快速执行函数,这种方法对于很小函数也有空间上的益处。内联函数能够原创 2022-03-23 23:00:25 · 791 阅读 · 0 评论 -
左值引用和右值引用
什么是引用引用就是给已经存在的变量取得一个别名,而不是新定义一个变量。编译器不会为引用变量开辟新得内存空间,引用变量和引用的变量共用同一内存空间。正在上传…重新上传取消引用的规则 引用在定义时必须初始化 一个变量可以有多个引用 引用一旦引用一个实体,不能再引用其它实体 什么是左值,右值右值引用是C++ 11新增的特性,左值引用从C++ 98就开始有。目前我们针对C++编程语言。左值(left-values),缩写:lvalues右值(right-原创 2022-03-23 22:57:25 · 641 阅读 · 0 评论 -
断点续传和下载原理分析
前天面试候选人,刚好看到了他做文件上传下载这块,然后也是无心之举便突然问了断点续传这个问题,结果候选人一懵,有点怔住了,可能他从来没有思考过这个问题,大多数上传下载都是接口侠,没有深入的理解这个原理,或者也不会debug出现的问题。首先讲讲HTTP 协议中, 可以在请求报文头中加入 Range 段, 来表示客户机希望从何处继续下载。在以前版本的 HTTP 协议是不支持断点的, HTTP/1.1 开始就支持了(这也是分快传输的实现)。一般断点下载时才用到Range 和 Content-Range实体头..原创 2022-03-23 22:53:58 · 956 阅读 · 1 评论 -
请问海量数据如何去取最大的K个
这可能是形而上学很有深度一个算法题目,因为这个会的人能天马行空设计出绝妙的算法,不会的人可能连题目都无处下手。海量数据top K问题,在互联网大厂的产品中到处体现出来,比如微信的计步软件,统计出K名,然后进行排序。当然类似的题目还有有一亿个浮点数,如何找出其中最大的10000个。这里面其实涉及代码技能就是内存的处理以及数据的去重优化,把本来需要占大量内存空间的海量数据通过各种方法处理出来。以下有几种方法,包括最蠢和最明智的方案,在面试中可以供你吹水。内存允许的情况下,直接全部排序这可能是最直接简原创 2022-03-23 22:52:36 · 557 阅读 · 0 评论 -
说一说c++中四种cast转换
类型转换是项目中常使用的一种语法规则,几乎每个编程语言都不可避免的涉及到这方面,懂得动态的类型转换能够快速的解决一些棘手的难题,并且迸发出出人意料的效果。当然在面试当中也是作为一个频率略高的话题。尤其在C++当中,面向对象最大的特点是多态性,而要很好的使用这个特性,避免不了指针和引用,避免不了类型转换的问题。为什么不使用C的强制转换?C的强制转换表面上看起来功能强大什么都能转,但是转化不够明确,不能进行错误检查,容易出错。C 风格(C-style)强制转型如下:(T) exp原创 2022-02-04 00:03:04 · 793 阅读 · 0 评论 -
用两个栈实现一个队列的功能?
这一道题是当初学数据结构时常出的考题,万万没想到入了社会,发现许多大厂都喜欢巧借各种数据结构来让你实现另外一种数据结构。只要明白堆栈和队列的特征,要实现队列的功能,也就是利用堆栈功能的复合使用,有两个栈就可以复合使用两次来实现队列。特征堆栈:FILO 先进后出。队列:FIFO 先进先出思路用两个栈s1和s2模拟一个队列时,s1作输入栈,逐个元素压栈,以此模拟队列元素的入队。当需要出队时,将栈s1退栈并逐个压入栈s2中,s1中最先入栈的元素,在s2中处于栈顶。s2退栈,相当于队原创 2022-02-04 00:02:36 · 831 阅读 · 0 评论 -
大端和小端
面试题:写怎么测试CPU大小端地代码?方法一:直接取高字节判断方法二:利用union,原理:联合体union的存放顺序是所有成员都从低地址开始存放,而且所有成员共享存储空间,更易理解大小端是面试中的老生长谈话题,特别在一些嵌入式软件的岗位,以及系统工程师的岗位中经常被提及。首先来了解一下大小端模式。大端模式:高位对应低地址,低位对应高地址 ;换而言之,就是数字的高位存放在内存的低址地,低位存放在内存的高地址。小端模式:高位对应高地址,低位对应低地址 ;即数字的高位存放在.原创 2022-02-04 00:01:59 · 1664 阅读 · 0 评论 -
python中的消息弹窗
在写python代码中,经常要弹窗提示一下消息情况,因为有时候我同时用了多个ui框架,比如tkinter,pyqt等,经常找不到合适的弹窗模块。因此梳理了一下几种弹窗方案。一、采用windows自带的api(需要导入win32api)特别强调采用这种方案,这种方案的优势就是弹窗模态,并不需要主窗口。二、采用tkinter自带的消息弹窗模块(需要导入tkinter)可以看到,用tkinter自带的消息弹窗模块,产生一个弹窗他同时,一定会有个父窗口显示出来,这是非常大的一个败笔,所以除非原创 2022-02-04 00:01:20 · 26069 阅读 · 0 评论 -
写一个“标准“宏MIN ,这个宏输入两个参数并返回较小的一个
面试题目:写一个”标准"宏MIN ,这个宏输入两个参数并返回较小的一个答:这个测试是为下面的目的而设的:1) 标识#define在宏中应用的基本知识,这是一个非常重要的基础知识。因为在嵌入(inline)操作符变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。2)三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。3) 懂得在宏中原创 2022-02-03 23:58:34 · 2972 阅读 · 0 评论 -
谈动态规划
概念动态规划(Dynamic Programming,DP)是求解决策过程最优化的过程。通过把原问题分解为相对简单的子问题方式来求复杂问题的方法。在背包问题、生产经营问题、资金管理问题、资源分配问题、最短路径问题和复杂系统可靠性问题等应用极其广泛。在学生时代中的acm大赛,都是一个必修的算法课题,也是科技大厂面试时最频繁出现的算法题,题目类型多,没有固定模板,灵活度极高,思维难度大,难度属于中上,没有很明显的套路做法。其实学好动态规划,不仅仅是对这个算法模型的掌握,而且对于我们自身,用一种动态规原创 2022-01-09 03:19:13 · 265 阅读 · 0 评论 -
strcpy和memcpy的区别
面试题目:strcpy和memcpy的区别?(这种题目难度不大,侮辱性极强)答:两者都是C语言里的库函数。strcpy 只能拷贝字符串,它遇到'\0'就结束拷贝。memset 用来对一段内存空间全部设置为某个字符,一般用于在对定义的字符串初始化为' '或者'\0';memcpy 是用来做内存拷贝,可以用来拷贝任何数据类型的对象,可以指定拷贝的数据长度。memcpy提供了一般内存的复制,对于需要复制的内容没有限制,用途更广。strcpy的函数原型(前缀带str的都是针对字符串)me..原创 2022-01-09 03:18:17 · 573 阅读 · 0 评论