摘要:
寄存器 在软件开发过程中,Ctrl-C和Ctrl-V是程序员的核心技能,这就不可避免的涉及到复制,粘贴,删除。在windows环境下,大家习惯了只有一个系统剪切板,复制之后直接粘贴还是比较方便。在vim环境下,有更多的寄存器可以选择:26个字母(大小写分别对应不同用途),还有0——9共10个数字对应 阅读全文
摘要:
文档 对于一个(大型)软件来说,文档始终是一个重要功能。例如,vim内置的在线文档就十分轻便基于文本格式,使用普通编辑器查看也不影响阅读),这样让vim的使用非常丝滑。 UE作为一款游戏软件,同样内置了控制台命令,通过这些命令可以交互式执行控制台命令,查看/控制进程状态。更妙的是在输入的时候,控制台 阅读全文
摘要:
zero-page 操作系统给用户新分配的内容(通过mmap或者brk)都是清零过的,但是这些虚拟地址通常都是按需分配物理页面。这里的“按需”的需求可能是读取,也可能是写入。如果只是读取,只要保证读取内容是零即可,在MMU的基础上,可以让“所有”虚拟地址都映射到内容为0的物理页面中。 这样如果申请的 阅读全文
摘要:
keyword go语言介绍中标榜的一个重要特点是语法简单,这里有一个不同语言关键字的个数,同样是为了防止网页打不开或者丢失,这里单独复制一份: C (ANSI (C89)) (32 keywords) C (C11) (44 keywords) C (C17) (44 keywords) C (C 阅读全文
摘要:
问题 众所周知,UE的启动模块位于Engine\Source\Runtime\Launch文件夹,这个文件夹下包含了所有UE支持的平台类型,但是Launch.Build.cs文件并没有特殊的说明来确定使用哪个子文件夹的内容。 尽管从源代码组织结构上看可以想当然的知道只会选择当前构建平台,但是UE是如 阅读全文
摘要:
问题 C++一个经常被人诟病的地方就是编译速度,大型C++项目(例如chrome)的构建时间会很长,编译和链接都是如此。这使得大型C++项目的开发迭代比较痛苦。 作为一种新生的语言,go在设计的时候就考虑到了构建时间的问题,力图提高编译速度。 那么这种加速又是如何实现的呢? gcc说明 当前的go编 阅读全文
摘要:
identifier C++的前端对identifier做了扩展,在每个identifier中还包含了两个cxx_binding字段:namespace_bindings和bindings。当通过字符串找到一个identifier的时候,同时顺带获得了两个binding信息。 /* Language 阅读全文
摘要:
问题 众所周知,程序员大部分时间并不是在写代码而是在浏览和调试代码。对于一个大型项目,或者不是很熟悉的模块,浏览代码是通常需要各种跳转。 一个常见的场景时:当通过搜索(例如linux下的grep工具)或者ctag跳转到某个引用的时候,我们可能并不知道此时所在何处。比方说,是在哪个函数内,是在哪个类内 阅读全文
摘要:
# 问题 在python中,class中函数的定义中有一个特殊的self指针,如果一个函数有一个self参数,通常意味着这是一个非静态函数,也就是调用的时候第一个参数是对象指针,只是这个指针是调用这个函数时由python来自动填充。 ```py tsecer@harry: cat cls_mth.p 阅读全文
摘要:
# 问题 python中的模块主要通过import实现。一个常见的典型场景是在A模块import模块B的func,并调用B模块的func;而B模块的func又引用了所在模块B的gvar变量。这个过程中A其实只import了模块B的func函数,在A模块调用B模块的func时,func函数能不忘初心, 阅读全文