Solaris(64 位)开发者指南

使用指针运算而不是地址运算

通常,由于指针运算是独立于数据模型的,而地址运算则可能不是,因此使用指针运算比地址运算更好。此外,使用指针运算通常还可以简化代码。例如,

int *end;

int *p;

p = malloc(4 * NUM_ELEMENTS);

end = (int *)((unsigned int)p + 4 * NUM_ELEMENTS);

将生成以下警告:

warning: conversion of pointer loses bits

以下代码将生成不带警告的结果:

int *end; 

int *p;

p = malloc(sizeof (*p) * NUM_ELEMENTS);

end = p + NUM_ELEMENTS;