- 博客(19)
- 收藏
- 关注
原创 内存模型以及相关内容
理解上述内容,有助于更好理解系统架构,更好地理解编译器原理。有助于理解广为使用的fence概念。有助于掌握多处理器架构下的并发编程。《完》
2024-10-17 15:02:17
654
原创 C语言标准
下面链接提到的C语言精神,应该是C语言始终保持简单,高效的原因吧;上一节的改动记录也能反映这种精神;基于这种精神,我们看到,C标准的演进其实是非常缓慢和慎重的。C语言是一门高级语言,但它抽象程度不如C++/Java等,它足够贴近硬件,又与Unix系统同宗同源;C语言可以完全没有runtime的支持,它的标准库很基础,生成的目标代码比较可控。所以C语言简单高效,应用范围极广,是系统内核采用的基础语言,也是硬件之上的基础语言。一般,新出一套硬件,先用C。
2024-10-15 09:49:32
1026
原创 C++11?
有的岗位要求中提到“熟练使用C++11或更高标准”。比较好奇为什么会专门要求C++11呢?个人理解,C++中最重要的是,面向对象的思想,和利用C++特性实现的设计(包含设计模式中的典型应用场景)。很多文章介绍了C++11相对C++98的变化,本文主要顺着官网文章的思路,汇总相关内容,并在“备注”中附加了我的个人理解。从网页Current Status : Standard C++ (isocpp.org)可以看到C++标准的状态(见下图)。C++这门编程语言的历史可以追溯至1979年,C++之父Bjarne
2024-09-26 19:39:02
945
原创 inf中通过CopyFiles指定系统重启后生效
驱动安装时,应尽可能不要求系统重启,尽可能不打断用户工作。大部分驱动也是这样设计的,除非特殊的情况,如下面需要通过重启解决已知问题。问题背景:一个低概率问题,问题发生时,设备不可用,系统重启可以恢复。需要更新驱动去解决问题,但驱动升级过程中(严格说,是旧驱动卸载时发生,跟时序有关)可能触发问题。解决方法:原驱动安装是,不需要重启;只在这一版的新驱动的INF中,通过CopyFiles指定驱动在系统重启后生效。改动前:[MyFileCopy]my_driver_file.dll改动后:
2021-09-15 09:24:12
340
原创 编程基础—C# and .NET
以下问题由同事提问引发,这里总结一下。 问: C#中装箱和拆箱是指什么 答: 要明白装箱和拆箱,必须先明白其他一些东西。 C#纯面向对象,所有的东西都是对象;所有的数据类型和类等都是由基类System.Object继承而来的(只支持单一继承)(想想那张巨大的类关系图)。根据在内存中如何被分配,C#中的类型一共分为两类,一类是值类型(Value Type),一类是引用类型(Reference
2016-02-28 18:57:26
480
原创 用电笔等修复双控开关下的卧室灯
卧室的灯突然不亮了,决定把它修好。灯由双控开关进行控制,灯原来有不同的亮度级别,有三个大灯亮,N多小的水晶灯亮,所有全亮等级别。估计是灯里面的电器件老化了,打算改成只大灯亮,小灯闪烁那些炫的功能对我们没用。工欲善其事,必先利其器,下面主要说说电笔。电笔有老式的氖泡电笔(测试有电,氖泡亮,显红色),和我用的数字电笔(下图)。 多功能测电笔(数字显示式)分12V、36V、55V、110V、220V
2016-02-17 00:33:52
3660
原创 C/C++区别
自打学习计算机,学习了C、C++语言,一直没有仔细区分这两种语言。我总是说我会C、C++,一直说我更喜欢C++(主要因为面向对象的设计带来的灵活性)。最近,写了简单的blog内存查看器。我才从头意识到我以前用得更多的是C++,更熟悉的是C++。近期用得最多的是C,因此,有必要重新梳理一下二者的区别。 C和C++有各自的标准委员会,针对C、C++标准,不同的编译器厂商可以有不同的实现
2016-01-29 00:11:28
340
原创 ASCII字符串转换成16进制
最近遇到一个小问题,从网络接收到的包中含有MAC地址(ASCII字符格式,例如”74-29-AF-F2-30-D3”,共18个字符),按照约定我需要把它转换成6个字节的二进制数(74 29 AF F2 30 D3)。 收到的字符串“74-29-AF-F2-30-D3”,是ASCII编码的,内存中就是:37 34 2d 32 39 2d 41 46 2d 46 32 2d 33 30 2d 44 3
2015-12-28 00:23:56
3246
原创 内存查看器
最近新到一个公司上班,所做的项目与网络通信有关,网络通信,必然涉及到收发网络包,为了检查我封装的包的数据是否正确,为了便于与通信方进行比对,我需要获得最终收发包的二进制数据。这个通常有以下实现方式: 1、网络抓包,典型的做法是,根据通信网络设备的组网,在交换机建立port-mirroring,把运行抓包工具(Wireshark)的电脑练到这个镜像 口,把通过某些端口的网络包全抓下来进行分析; 2
2015-12-27 23:28:24
1198
原创 查询词提示系统的简单实现
问题来源:闲逛到牛客网,这是百度2016研发工程师笔试题(五)中的最后一道编程题,一共12道,一小时内完成;我只对了5道,25分。下面的代码是线下做的,断断续续花了一天(中间国足客场0:0香港,终于杀死悬念)。问题原文: 设计一个查询词提示系统 查询词提升是现代搜索引擎中广泛使用的一种技术,当用户输入查询词前缀时,会给出一系列相关的查询词推荐,例如在搜索框内输入”中国”,会提升”中国好声音”
2015-11-18 08:30:47
604
原创 设计模式学习笔记(未完)
第一次系统学习设计模式的时候,我还在学校里。买的书是《设计模式–可复用面向对象软件的基础》翻译过来的,机械工业出版社,2005年12月第1版。当时的感觉就是醍醐灌顶,这些老外太牛了。自己在代码中使用的模式真不多,在各种库中看到不少,具有设计模式思想的东西不少。最近有时间,把这本书又过了一遍,新的体会:文章组织和翻译不太好啊(有的字句不太好理解啊,每个模式的应用实例我基本不知道啊,也许是原文就这样(没
2015-10-23 11:07:30
495
原创 学习资料汇总(会持续更新)
程序员这个职业注定要活到老学到老(其实很多职业都是这样,只是我们这个职业对此要求更高),所以我们程序员要热爱学习,要不断学习。互联网上资源浩如烟海,如何能更快更好地找到自己想要的东西,最主要的一点要会向自己提问题,从一个问题引向另一个问题,不断积累,完善自己的知识系统。下面是我接触到的一些资源, 供参考:1. https://codility.com an English we
2015-10-21 09:23:39
457
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人