程序示例
为了说明一个抽象程序是如何被系统地转换成更有效的代码的,我们使用基于如下所示的向量数据结构的运行示例
向量由两个内存块表示,头部和数据数组,头部声明结构如下, data_t代表基本数据类型:
typedef struct {
long len;
data_t *data;
}vec_rec, *vec_ptr;
生成向量,访问向量元素,确定向量长度的基本过程
vec_ptr new_vec(long len)
{
vec_ptr result = (vec_ptr)malloc(sizeof(vec_rec));
data_t *data = NULL;
if(!result)
return NULL;
result->len = len;
if(len > 0){
data = (data_t *)calloc(len, sizeof(data_t));
if(!data){
free((void *)result);
return NULL;
}
}
result->data =