![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础知识
反调唱唱
这个作者很懒,什么都没留下…
展开
-
数组变量的越界特征
做p2p的时候,需要统计数据,在没有修改partener相关情况下,上报的partener忽然发现出了问题,“凭空”多了很多partener,观察发现,这些多出的partener有一个共同特征:这些partener都是某一变量的后一部分,由于经验不足,只能从源码打印log调试,最终发现是在函数里有两个partener需要统计,原因呢是,服务端得到的A的partener内容变长了,A越界,把B覆盖了原创 2015-09-13 11:46:33 · 587 阅读 · 0 评论 -
逗号表达式
逗号运算符特性:1.逗号运算符将两个以上的表达式用逗号联起来,2.计算过程为从左到右;3.整个逗号表达式会有一个返回值,是最后一个表达式的值4.逗号运算符的优先级在所有运算符中是最低的在实际讲逗号表达式的时候,经常会举比较不好的例子:1.一般讲逗号运算符时喜欢用类似例子:(1 + 2, 3 + 4),这个逗号表达式的返回值为3 + 4的值7,但是用这个例原创 2017-12-10 00:00:13 · 2397 阅读 · 0 评论 -
Carthage 缺点
项目中用了ComponentKit,不得不用Carthage,但是发现还不如cocoapod好用,当然可能是不习惯的问题。1. 库不丰富,很多库依然不支持(短时间内就算是,用了Carthage,也必须用cocoapod,按奥卡姆剃刀原理,不应该用)2.只支持 Framework,(这个倒是问题不大)3.无法在 Xcode 里定位到源码(这个看需求吧,但想看源码时确实比较坑)4.原创 2017-06-21 22:13:49 · 1274 阅读 · 0 评论 -
Macho文件浏览器---MachOView
前言:MachOView下载地址:http://sourceforge.net/projects/machoview/MachOView源码地址:https://github.com/gdbinit/MachOViewMach-O格式全称为Mach Object文件格式的缩写,是mac上可执行文件的格式,类似于windows上的PE格式 (Portable Executable )转载 2017-01-19 11:47:58 · 4079 阅读 · 0 评论 -
请求“参数”不对bug
调试程序的时候一直有一个请求的参数不对,但是在查看“对应”请求的地方发现没有任何问题,多次确认后还是无问题,很头痛,最终发现是在另一个请求的地方写错了请求地址(实际上是自己封装的和手表通信,请求的一个path,也相当于网络请求的url)参数肯定是不一样的。遇到类似bug的时候,比如真正应该请求的地方是A,在确认A无误后,那么错误肯定就是在其他地方误用了,导致被认为是A的错。原创 2016-11-16 21:30:56 · 3348 阅读 · 0 评论 -
解决头文件相互包含问题的方法
转自:http://blog.csdn.net/yang_lang/article/details/6767439 所谓超前引用是指一个类型在定义之前就被用来定义变量和声明函数。 一般情况下,C/C++要求所有的类型必须在使用前被定义,但是在一些特殊情况下,这种要求无法满足,例如,在类CMyView中保留了一个非模式对话框对象指针,该对象用转载 2016-06-15 14:45:16 · 392 阅读 · 0 评论 -
NAT64与DNS64基本原理概述
关键词:NAT64、DNS64、IPv6、网络地址与协议转换、IPv6与IPv4互访1.NAT64与DNS64背景在IPv6网络的发展过程中,面临最大的问题应该是IPv6与IPv4的不兼容性,因此无法实现二种不兼容网络之间的互访。为了实现IPv6与IPv4的互访,IETF(互联网转载 2016-05-20 20:16:39 · 49111 阅读 · 2 评论 -
IPV6的地址
转自:http://blog.chinaunix.net/uid-25940826-id-3456540.htmlIPV6的地址类型可分为三大类:1、单播地址2、组播地址3、任意播地址一:单播--Unicast : one to one·单播地址用于一对一的连接·IPv6单播地址有以下六种类型:1-Aggregate Global Unicast A转载 2016-05-20 18:01:04 · 1041 阅读 · 0 评论 -
TCP拥塞控制机制
转自:http://blog.sina.com.cn/s/blog_48ebca64010003t0.html 研究TCP的拥塞机制,不仅仅是想了解TCP如何的精巧,更多的是领悟其设计思想,即在一般情况下,我们该怎样处理问题。 一.拥塞的发生与其不可避免 拥塞发生的主要原因在于网络能够提供的资源不足以满足用户的需求,这些资源包括缓存空间、链路带宽容量和中间转载 2016-04-13 18:18:29 · 388 阅读 · 0 评论 -
Linux文件权限详解 文件和目录权限概述
http://blog.chinaunix.net/uid-25052030-id-174343.html在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问;允许一个预先指定的用户组中的用户访问;允许系统中的任何用户访问。同时,用户能够控制一个给定的转载 2016-02-29 16:54:55 · 324 阅读 · 0 评论 -
跟我一起写 Makefile
转自:http://blog.csdn.net/haoel/article/details/2886 makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HT转载 2016-03-31 16:05:10 · 655 阅读 · 0 评论 -
Android 替换应用内so文件避免每次都要重新打包的麻烦
因工作需要,开发调试每次都要先编译so,再打包apk,然后再装机调试,很麻烦,就想有没有办法直接用新打包的so直接替换apk里的,这样省去了不少麻烦。终算是有两种办法。第一种办法:1.root手机:一般用各种手机助手都可以,一种不行可以换另一种,不同的手机可能需要不同的工具2.修改相关文件夹和文件的权限:正常情况下很多文件都权限不够,为了方便修改的时候可以把涉及到的都修改为77原创 2016-02-29 21:45:45 · 10289 阅读 · 0 评论 -
git之忽略文件
ignore files 三种方法1.1.1全局在仓库目录下新建一个名为.gitignore的文件.gitignore文件对其所在的目录及所在目录的全部子目录均有效。将.gitignore文件提交添加到仓库,其他开发者更新后,也都会生效,所有人员共用这套规则。1.2局部如果是只想对某个文件建规则,就只在此文件下创建.gitignore原创 2015-12-03 20:48:02 · 404 阅读 · 0 评论 -
ios 开发中宏定义的三种方式及优先级
ios 开发中有三种方式可宏定义变量1.直接在文件中用 #define ... 来定义:此方式优先级最高,当用多种方式宏定义一个变量时,这种方式为最后的值2.在Build Settings中的Apple LLVM 7.0(或者其他版本号) - Preprocessing->Preprocessor Macros中定义:和第3种方式平级3.用xcodebuild打包,在打包命令行中使用原创 2015-12-29 21:53:51 · 2076 阅读 · 0 评论 -
block基础知识
什么是block?1.block和函数指针很象,函数指针的声明方法为:返回值类型 ( * 指针变量名) ([形参列表]);int func(int x); /* 声明一个函数 */int (*f) (int x); /* 声明一个函数指针 */此函数指针指向的函数返回值为一个int类型,参数为一个int类型,f=func; /* 将func函数的首地址赋给指针f */block的原型原创 2016-01-14 20:19:19 · 477 阅读 · 0 评论 -
C扩展语法一:语句内嵌表达式
语句内嵌表达式格式为({xxx});其返回值为最后一个表达式的值花括号内可以是各种表达式,但是最后一个表达式必须是非声明以分号结尾的表达式,比如:最后如果是int test = 5;就会报错, int test = 5并没有返回值。语句内嵌表达式最常用的地方是在宏定义中。1.比如常用的max定义如果普通定义#define max(a,b) ((a) > (b) ? (a) : (b))原创 2017-12-10 02:51:18 · 858 阅读 · 0 评论