二者之间的区别:
C++
#include <stdio.h>
typedef char* ptr;
#define PTR char*
int main()
{
ptr a, b, c;
PTR x, y, z;
printf("sizeof a:%zu\n" ,sizeof(a) );
printf("sizeof b:%zu\n" ,sizeof(b) );
printf("sizeof c:%zu\n" ,sizeof(c) );
printf("sizeof x:%zu\n" ,sizeof(x) );
printf("sizeof y:%zu\n" ,sizeof(y) );
printf("sizeof z:%zu\n" ,sizeof(z) );
return 0;
}
输出为:
C++
sizeof a:8
sizeof b:8
sizeof c:8
sizeof x:8
sizeof y:1
sizeof z:1
由于在处理,typedef 定义了新的类型,因此变量 a, b, c 都属于指针类型,而 #define 只是做了简单的替换,被替换为语句 char *x, y, z 实际 y,z 为 char 类型。
阅读量:2009
点赞量:0
收藏量:0