IOS开发之Bug--关于C语言数组的容量参数
2016-04-20 02:01
218 查看
这个错误之前没遇过,蛮奇葩的错误,只是一开始不了解,因为它折腾了许久。
先简单概括一下,以后有时间整理一下:
对应创建C语言的byte数组,我一开始使用:Byte b[PROTOCOL_CACHE_BUFFER_SIZE];这个PROTOCOL_CACHE_BUFFER_SIZE(protocol_cache_buffer_size)我把它通过某种方式抽离出来。
我一开始采用常量声明的方式:
在.h文件中:extern int const PROTOCOL_CACHE_BUFFER_SIZE;
在.m文件中:int const PROTOCOL_CACHE_BUFFER_SIZE = 2048;
这样会到后面Byte类型的数组b会出现问题,就是存储的数值会变成别的。
但是我改为下面的方式就对了:
#define PROTOCOL_CACHE_BUFFER_SIZE 4028;
这个情况很奇葩,但是我还是因为它折腾了好几个小时。搞得我整体编码进度好慢。特此随笔简单记录,以后有时间详细补充。至于具体原因,以后也抽时间探索一下。
下面再补充一些:
并且补上这部分代码:链接: http://pan.baidu.com/s/1i5tqW3j 密码: 3w8e <温馨提示:这个密码是经过加密的哦,简单的改了下数字,当然是为了不公开啦,嘻嘻>
先简单概括一下,以后有时间整理一下:
对应创建C语言的byte数组,我一开始使用:Byte b[PROTOCOL_CACHE_BUFFER_SIZE];这个PROTOCOL_CACHE_BUFFER_SIZE(protocol_cache_buffer_size)我把它通过某种方式抽离出来。
我一开始采用常量声明的方式:
在.h文件中:extern int const PROTOCOL_CACHE_BUFFER_SIZE;
在.m文件中:int const PROTOCOL_CACHE_BUFFER_SIZE = 2048;
这样会到后面Byte类型的数组b会出现问题,就是存储的数值会变成别的。
但是我改为下面的方式就对了:
#define PROTOCOL_CACHE_BUFFER_SIZE 4028;
这个情况很奇葩,但是我还是因为它折腾了好几个小时。搞得我整体编码进度好慢。特此随笔简单记录,以后有时间详细补充。至于具体原因,以后也抽时间探索一下。
下面再补充一些:
并且补上这部分代码:链接: http://pan.baidu.com/s/1i5tqW3j 密码: 3w8e <温馨提示:这个密码是经过加密的哦,简单的改了下数字,当然是为了不公开啦,嘻嘻>
相关文章推荐
- C++中class的类型转换重载
- [C/C++]C++11中变长参数模板与初始化列表
- 有关C++类中的重载,覆盖与隐藏
- C++强制转换之static_cast
- C++学习笔记58——模板实参推断
- C++ 中Traits技术 (5) —— 关于STL中对迭代器封装的类型介绍
- c++ 遍历文件夹及其子文件夹
- C++友元函数重载"++"和"--"运算符
- C++常用库
- C语言计算字符串长度的几种方法
- Next Permutation
- C语言基本数据类型
- 探究fork函数
- C语言运算符表达式
- 巩固C语言(十二)----文件加解密
- C++重载括号和重载类型探索
- day01 C语言基础
- C++ 的内置函数(inline)和作用域运算符(::)
- 浅析C++多态及其实现模式
- 细谈C++的运算符重载