上一页 1 2 3 4 5 6 7 8 9 ··· 35 下一页

2023年1月12日

摘要: 语法分析 和通常的有语法的结构一样,proto的编译也经过词法(tokenize)和语法(parse)两个阶段,相关代码分别在tokenizer.cc和parser.cc两个文件中。 /// @file: protobuf\src\google\protobuf\compiler\parser.cc 阅读全文
posted @ 2023-01-12 20:12 tsecer 阅读(437) 评论(0) 推荐(0) 编辑

2022年12月9日

摘要: 位置决定语义 在下面的python代码中,忽略掉语法错误,源码中同样一个单词tsecer在不同的位置有不同的意义 import之后 在import之后的tsecer是作为一个简单的字面字符串来处理:这里的意思是这个tsecer不会有任何变量(及相关展开)的意义,它更类似于C语言中的字符串,也就是字面 阅读全文
posted @ 2022-12-09 20:34 tsecer 阅读(244) 评论(0) 推荐(0) 编辑

2022年12月8日

摘要: 现象 在gdb中,如果想看一个struct的某个field的偏移量,和C语言一样可以通过对一个0地址变量取地址,然后取成员的偏移量获得。更神奇的地方在于和C语言一样,这里也不会触发内存访问异常。 另外还有一个奇怪的现象:对于x取地址的时候没有问题,但是对于c字段取地址之后会有一个莫名其妙的错误提示" 阅读全文
posted @ 2022-12-08 22:35 tsecer 阅读(590) 评论(0) 推荐(0) 编辑
摘要: 问题 在使用git diff 展示c/c++文件修改内容时,除了显示修改上下文外,输出还贴心的展示了修改所在的函数。尽管这个展示并不总是准确,但是能够做到大部分情况下准确也已经相当不错:是不是git内置了c语言这种高级语言的语法分析器?另外,git的这种分析在什么情况下会不准确? 例如,在下面的例子 阅读全文
posted @ 2022-12-08 20:33 tsecer 阅读(477) 评论(0) 推荐(0) 编辑

2022年11月22日

摘要: 三角形 在recastnavigation中,三角形是最基础的元素,很多逻辑都是基于三角形进行的,其中比较常见的一个操作就是计算指定点到某三角形上的最近距离。由于三角形通常代表行走面,而给定点P可能是场景中的任意位置,所以这个操作通常会用来计算可行走面的最近距离。 recastnavigation的 阅读全文
posted @ 2022-11-22 22:48 tsecer 阅读(131) 评论(0) 推荐(0) 编辑

2022年11月4日

摘要: 测试代码 使用emplace_back可以避免不必要的构造和拷贝,而是直接在向量的内存位置执行construct进行构造,代码看起来也更加简洁。 但是在使用的时候,会发现有一些和直观不太对应的情况。例如,在下面的例子中,使用new的时候,只有花括号可以通过编译,而同样的emplace_back就不行 阅读全文
posted @ 2022-11-04 20:15 tsecer 阅读(629) 评论(0) 推荐(0) 编辑

2022年10月30日

摘要: 遍历 hash表是一种比较简单和直观的数据结构,在查找时也有很好的性能。但是hash表不能提供有序遍历,这个是其特性决定,所以不足为奇。但是,更为实际的一个问题是如果遍历整个hash表中的所有元素? 直观上讲,可以遍历一个hash的所有桶(bucket),但是这样明显效率偏低,特别是如果hash表为 阅读全文
posted @ 2022-10-30 11:14 tsecer 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 历史展开(history expand) 历史展开是bash交互式操作时的一个重要展开方式,这种展开相对于bash的变量展开。 它的整体逻辑是首先是找到历史上的特定行(通常是前一行,这个也是缺省的操作行),然后从中提取特定行(例如第2个参数),或者执行特定操作(例如替换)。 历史事件(history 阅读全文
posted @ 2022-10-30 11:09 tsecer 阅读(77) 评论(0) 推荐(0) 编辑

2022年9月22日

摘要: 一、问题 当gcc的优化打开前后的效果不同时,可以通过gcc的-Q --help=optimizers查看在构建时gcc默认开启了哪些选项 tsecer@harry: gcc -Q --help=optimizers -O1 tsecer.cpp | more 下列选项控制优化: -O -Ofast 阅读全文
posted @ 2022-09-22 19:18 tsecer 阅读(140) 评论(0) 推荐(0) 编辑

2022年9月7日

摘要: 引入 vim内置命令中包含了text object相关功能,这些功能可以在vim的 :h motion.txt 帮助文档中找到相关帮助。这个功能看起来实现比较简单,而且是一个非常实用的功能。这个功能之所以加入比较晚,在于它使用a和i并不是传统的motion动作,而是normal模式下的插入(inse 阅读全文
posted @ 2022-09-07 19:43 tsecer 阅读(162) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 35 下一页

导航