C语言基础七typedef

来源:互联网 发布:php 无限分类 编辑:程序博客网 时间:2024/05/10 11:46

typedef:

使用:

typedef int Integer;//给int起一个别名,定义了一种新的数据类型,和int,double等级的typedef Integer MyInteger;typedef unsigned int UInteger;//#define Integer int//int main(){-----int a=1;-----Integer b=9;-----UInteger c=11;-----MyInteger d=213;}


与指针:

char *s=”itcast“;typedef  char * String;String s1=”itcast“;



与结构体:

typedef struct{//此处删除了结构体名,因为完全可以省略-----float x;-----float y;} Point;Point p={10,10);


与指向结构体的指针:

typedef struct Point{//可以省略Point-----float x;-----float y;}  * PP;struct Point point={10.0f,20.0f};PP pp=&point;//pp不用加*,是因为PP代表了(结构体 *)printf(”x=%f,y=%f\n“,pp->x,pp->y);//x=10.000000,y=20.000000


与枚举:

typedef enum {spring ,summber,autumn,winter} Season;Season s=spring;


与指向函数的指针:

首先复习一下指向函数的指针:int sum(int a,int b){-----int c=a+b;-----return c;}void test(){-----int (*p)(int,int);-----p=sum;-----(*p)(4,5);}使用typedef:void test(){-----typedef int(*SumPoint)(int,int);//这种方法和之前的不一样,SumPoint就是别名。-----SumPoint p=sum;----(*p)(4,5);}


类似宏定义:

 typedef char * String1;//String1最好用这种方式起别名,把char * 当作一个整体String1就是一种类型。#define String2 char *     //String2-----String1 s1,s2;-----//char *s3,s4;//char *s3;char s4;纯粹是字符串替换-----String2 s3,s4;//s1,s2,s3都是指针变量,只有s4才是普通的char类型。


0 0