Arduino PWM电机控制实战:打造动态飞溅绘画机
2026/5/31 18:29:28
ptrdiff_t详解首先明确:ptrdiff_t不是 C++ 关键字,它是标准库定义的类型别名(typedef),属于有符号整数类型。
<cstddef>头文件中(C++ 标准库)typedef定义的有符号整数类型别名两个同类型指针相减(比如数组指针),结果是它们之间的元素个数,这个值可能是正数、负数或 0:
intarr[]={10,20,30};int*p1=&arr[2];int*p2=&arr[0];// p1 - p2 = 2(两个元素间隔)// p2 - p1 = -2ptrdiff_t diff=p1-p2;size_tptrdiff_t会自动适配平台,保证跨平台兼容性ptrdiff_tvector)的迭代器差值#include<iostream>// 必须包含这个头文件才能使用 ptrdiff_t#include<cstddef>intmain(){intnums[]={1,2,3,4,5};int*end=&nums[4];int*start=&nums[1];// 指针相减,用 ptrdiff_t 接收结果ptrdiff_t distance=end-start;std::cout<<"指针差值:"<<distance<<std::endl;// 输出 3std::cout<<"类型大小:"<<sizeof(ptrdiff_t)<<" 字节"<<std::endl;return0;}size_t的区别(高频考点)| 类型 | 符号 | 主要用途 |
|---|---|---|
ptrdiff_t | 有符号 | 两个指针/迭代器的差值 |
size_t | 无符号 | 表示对象大小、数组长度 |
<cstddef>中的标准类型别名size_t混用