#include <stdio.h>
struct STU {
int id;
char name[20];
char sex;
};
int main(void)
{
struct STU b = {10, "xwp", 'm'};
struct STU a;
a = b;
printf("%p %d
", &a.id, a.id);
printf("%p %s
", a.name, a.name);
printf("%p %c
", &a.sex, a.sex);
printf("sizeof(a) = %d
", sizeof(a));
printf("sizeof(struct STU) = %d
", sizeof(struct STU));
return 0;
}
#include <stdio.h>
//1.利用typedef封装数据类型
//2.利用typedef简化函数指针定义
//操作系统中含有的数据类型
typedef unsigned char u8_t;
typedef unsigned int u32_t;
typedef int ssize_t;
typedef unsigned int size_t;
//注意区分和define的区别
typedef char* NEWTYPE;
int main(void)
{
NEWTYPE p1, p2, p3; // char *p1, *p2, *p3; 这里面三种都是指针
}
/*
#define NEWTYPE char*
int main(void)
{
NEWTYPE p1, p2, p3; //char* p1, p2, p3; //这里只有p1是指针
}
*/
char *fun(char *a, int b, char *s[]){}
//这里也可以看出指针数组可以使用二重指针来代替
char *(*p)(char *, int, char **);
//将函数定使用typedef来定义
typedef char *(*)(char*, int, char **) FUN;
FUN too(int a);