摘要: 此次为练习实践记录,讲解用纯C模拟一个C++的int类型的stack。 因为在纯C中没有class关键字,也没有public、private,但是有struct,现在已最接近的方式实现,声明如下:1 typedef struct2 {3 int *elements;4 int logicalLen;5 int allocLength;6 } Stack; 在纯C中typedef是必须的,但是在C++中是不必要的。从技术上来讲,以上3个域都是暴露在外的,都是隐含为public的。我们可以将Stack声明为局部变量,编译器知道这种类型占12字节,但是我们不应该直接操... 阅读全文
posted @ 2012-06-05 23:59 ahl5esoft 阅读(1271) 评论(0) 推荐(2) 编辑
摘要: 指向结构的指针 对于指针和数组首先要注意:两个指针之间的加法运算是非法的,但是指针的剑法却是合法的。且对于数组arr而言,&arr[-1]是绝对非法的,对于&arr[n]的间接引用也是非法的。但是C语言的定义保证数组末尾的第一个元素,即&arr[n]的指针算术运算可以正确执行。 千万不要认为结构的长度等于各成员的长度的和。因为不同的对象有着不同的对其要求,所以结构中可能出现未命名的"空穴"(hole)。对于一下结构:1 struct {2 char c;3 int i;4 }; char占一个字符,int占4个字符,该结构可能占用的是8个字节而非5个 阅读全文
posted @ 2012-06-05 06:39 ahl5esoft 阅读(193) 评论(0) 推荐(0) 编辑