CPP琐记 03

杂记,后面会补充

lambda
[捕获列表] (参数列表) -> 返回值 {函数体}

如果lambda会生成一个匿名函数的话,并不难理解工作原理,但如果捕获列表中使用了一个局部变量会怎么样呢?

我们看最后一句
由于f是另外一个匿名函数,因此会被翻译成正常的函数call

通过[……]

查看文章

CPP琐记 02

没写完,一点点补全吧,包括前面的内容,不定期编辑,老样子,只写难点

容器

Vector,犹豫不决就用它,其实这玩意大概是个可变长的数组(我现在还没看过STL的源码)?看起来以后可以试着实现一下。
猜猜cpp书上说的,当没有默认构造函数的对象用作Vector初始化的情况会怎么样?

[……]

查看文章

CPP琐记 01

算是每天学习/加深的一个记录,尽量每天补充…

const相关

我以往对const的理解,除了常量以外,用在函数的参数里面可以防止被修改,但经常和指针放在一起就忘记了优先级有点蒙

const int *a;
int const *b;
// 均为指向int常量的指针

看啊,多么迷人[……]

查看文章

突击CPP

现实中发生了一些事情,让我萌生了一定要突击掉CPP的执念。

按照以往的经验,学会一门语言的最好办法就是扔掉上一门语言,但到了CPP这尤为困难,仔细想想怎么都还是因为我对C#的熟悉程度,基本上什么都能用它写,就算不能,用到些底层的还可以用C,导致我CPP很多地方练不到,甚至对一些基础概念也很薄弱[……]

查看文章

Crash, Crash, Crash

最近开发项目碰到了个很神奇的野指针问题,在arm64下正常,armv7a下炸了,然而这个项目是从C代码移植过来的,ndk那边只做了层CPP的封装,配置gradle的时候,直接指定了外部cmake,因此没办法直接用android studio调试,至少我不知道有什么办法可以导入源码。

然后你看l[……]

查看文章

认真你就输系列 – Arm间接寻址

我们都知道x86中的寻址相对于arm稍微简单一些,arm因无法直接操作内存地址,所以需要使用成对的ldr和str指令完成操作,因此,在操作一些常量或者字符串的时候,免不了要寻址,常见的教程版本大概是这样子讲的(摘抄):

汇编器编译后,反汇编看大概是长这样的:

乍一看没什么问题吧?[……]

查看文章

Tracing

最近感觉记忆力衰退,遂写几篇文章进行备忘。
代码分析的过程中,经常会碰到大坨难懂的逻辑(比如动态的函数指针,鬼知道它跳到哪里去了),或是难以定位关键点的问题,这个时候就需要tracing技术了,把所有的调用记录下来,再静态分析对流程进行梳理。
用tracing技术可以用来对付那些恶心的混淆(ollv[……]

查看文章

“合法”の酷鸟浏览器

注意!本文不是广告,更不是软文,找激活码请绕道,咱根本就没用过

好吧,我承认标题有点戏虐,今天群里看到张图

emmmm,从哪里开始吐槽呢?什么时候访问国外热门网站不合法了吗?当然不会讨论这种无聊话题的话~

下载到的是一个安装包,我虚拟机前段时间搞炸了,也懒得装了,毕竟听说要用的[……]

查看文章