我想举一个自己最近在项目中犯的错误来说明要踏踏实实做人,不要做装B青年
在代码中,我需要在一个library和一个daemon之间通过socket传送数据包,包的格式定义如下(为了简化,我就用最简单的数据类型举例):
typedef struct {
int head;
int size; //指明整个包的长度
char reply;
char data[0];
} packet;
packet* cmd = malloc (sizeof...
分类:
编程语言 时间:
2015-06-16 21:19:34
阅读次数:
131
我们在链接脚本在编程中的高级运用之一可变长数组中已经讲述了编译链接的原理,并且以uboot命令为例详细介绍链接脚本如何实现可变长数组。本章在前者的基础上继续讲述链接脚本在运行时库中的高级应用技巧,以及编译器如何支持类对象的构造和析构函数。本章的应用原则上类似于可变长数组,但本章更加侧重讲述运行时库的实现原理,其不仅通过链接脚本的section来实现可变长数组去支持任意多类对象的构造函数和析构函数,而且还支持特定函数体的“可变长”。...
分类:
编程语言 时间:
2015-06-03 11:59:24
阅读次数:
307
变长参数、过程、变长数组:数组缓冲、多维数组、与Java的互操作、获取映射中的值
分类:
其他好文 时间:
2015-05-28 21:18:31
阅读次数:
166
作为嵌入式软件工程师,应该要清楚程序的每一条指令在哪里,什么时候会被加载到内存,什么时候会被执行。链接脚本会明确告诉你程序的代码和数据在内存中的分布。精确控制代码和数据在内存中的分布是高效利用内存资源的前提。自定义链接脚本是资深嵌入式软件工程师的必备技能,更是嵌入式架构师的最基本要求。此外,灵活定制链接脚本在编程方面有更高级的应用。...
分类:
编程语言 时间:
2015-05-25 18:43:26
阅读次数:
177
C90及C++的数组对象定义是静态联编的,在编译期就必须给定对象的完整信息。但在程序设计过程中,我们常常遇到需要根据上下文环境来定义数组的情况,在运行期才能确知数组的长度。对于这种情况,C90及C++没有什么很好的办法去解决(STL的方法除外),只能在堆中创建一个内存映像与需求数组一样的替代品,这种...
分类:
编程语言 时间:
2015-05-21 10:42:01
阅读次数:
191
ArrayList
基于数组实现,本质上是对象引用的一个变长数组,能够动态的增加或减小其大小。
不是线程安全的,只能用在单线程环境下。多线程环境下可以考虑用Collection.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的
CopyOnWriteArrayList类
下面直接贴ArrayList的Jav...
分类:
编程语言 时间:
2015-05-20 22:23:49
阅读次数:
209
Array数组在swift中Array相当于oc中的NSMutableArray(变长数组)//1.定义数组var numarr:Int[] = [1,3,5,7,9];var strarr:String[] = ["理想","swift"];//2.访问和修改数租//(1)数组长度 和 访问...
分类:
编程语言 时间:
2015-05-18 22:38:40
阅读次数:
166
#include int binSearch(int, int, int);main(){ int i, n = 10, x = 7; //这里假设把数组a[]定义为a[n],是错误的,不能定义变长数组。 int a[10]; printf("Please enter your nu...
分类:
编程语言 时间:
2015-05-11 10:21:06
阅读次数:
105
创建数组有三种方法1、声明一个数组,声明时用常量表达式指定数组维数,然后可以用数组名访问数组元素2、声明一个变长数组,声明时用变量表达式指定数组的维数,C99支持3、声明一个指针,调用malloc(),然后使用该指针来访问数组元素,指针为常量,不能进行运算#include #include int ...
分类:
编程语言 时间:
2015-04-30 15:49:23
阅读次数:
113
有两个值得注意的地方:1、变长数组(VLA)的使用,没想到PAT上的OJ竟然支持C99,一开始不知道就没用,看了看别人的,既然,还是用吧, 它有一点我不太喜欢,它不能像一般数组那样在声明时通过赋一个0让全部元素初始化为零,等等,有点理解了。2、long long长整型的格式化输入输出,都要在"%d"...
分类:
其他好文 时间:
2015-04-01 19:31:55
阅读次数:
199