优秀的编程知识分享平台

网站首页 > 技术文章 正文

编码规范-C:不应将两个指针相减,除非它们的未限定类型相同

nanyue 2024-08-25 10:36:26 技术文章 8 ℃

编号

6.3.2.2.e

标题

不应将两个指针相减,除非它们的未限定类型相同。

语言

C

级别

2

类别

转换

规范说明

指针相减仅在确定偏移量时才有意义。

注意

指针的未限定类型是指其类型没有“const”、“volatile”等修饰符。

示例

char *p;
char *q;
float *f;

static const char message[] = "This is a message for ...";
float g = 0.0;

p = &message[5];
q = &message[10];
f = &g;

printf("Number of elements: %d\n", q - p); /* RIGHT */
printf("Number of elements: %d\n", q - f); /* WRONG */

Tags:

最近发表
标签列表