typedef 类型

使用typedef时,把定义的名字去掉就是数据类型

结尾要加分号

typedef起别名参与的是编译的过程

typedef 起别名时相当于给数据类型换个名字  但是定义好的别名是另一个新的数据类型

比如:

typedef int * point_t

point_t p,q;

此时p和q都是一个指针

point 就是一个新的数据类型,类似于int p,q; p和q都是int类型,而不是简单的替换

附上代码:

#include<stdio.h>

typedef int ___int32_t;
typedef int ___intarr_t[3];
typedef int ___int2arr_t[3][4];
typedef int *___point_t;
typedef int *___parr_t[3];
typedef int (*___arrp_t)[4];
typedef int (*___fp_t)(int ,int);
typedef int (*___fparr_t[2])(int ,int);

int add(int a,int b){
	printf("addfunc:%d\n",a+b);	
	return a+b;
}

int sub(int a,int b){
	printf("subfunc:%d\n",a-b);	
	return a-b;
}

int sum(___fp_t fp){
	printf("sumfunc:sum = %d\n",fp(10,20));
}

int main(int argc, const char *argv[])
{
	___int32_t a = 10;
	printf("a = %d\n",a);
	putchar(10);

	___intarr_t ar = {9,8,7};
	for(int i = 0;i < 3;i++)printf("ar[%d] = %d   ",i,ar[i]);
	putchar(10);
	putchar(10);

	___point_t p = ar;
	for(int i = 0;i < 3;i++)printf("p[%d] = %d   ",i,*(p+i));
	putchar(10);
	putchar(10);

	___int2arr_t arr = {1,2,3,4,5,6,7,8,9,10,11,12};
	for(int i = 0;i < 3;i++){
		for(int j = 0;j < 4;j++){
			printf("%d  ",arr[i][j]);
		}
		putchar(10);
	}
	putchar(10);

	___parr_t pa = {"hello world!","baidu","Godness!"};
	for(int i = 0;i < 3;i++){
		printf("%s\n",pa[i]);
	}
	putchar(10);


	___arrp_t ap = arr;
	for(int i = 0;i < 3;i++){
		for(int j = 0;j < 4;j++){
			printf("%d  ",*(*(ap+i)+j));
		}
		putchar(10);
	}
	putchar(10);

	___fp_t fp1,fp2;
	fp1 = sum(add);
	putchar(10);
	fp2 = sum(sub);
	putchar(10);

	___fparr_t fpa;
	fpa[0] = add;
	fpa[1] = sub;
	fpa[0](10,20);
	fpa[1](20,10);

	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柒丨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值