C语言中,可以用typedef关键字实现自定义类型,比如可以定义C语言中基本数据类型的整型int为INT,定义格式如下:typedef int INT;让后就可以在代码中使用INT来代替int。因此,对typedef的作用通俗的讲就是“起别名”。
typedef关键字既可以修饰基本数据类型int shot long double char等,也可以修饰数组、指针等类型,关于typedef
的详细应用可以参考如下范例:
#include "stdafx.h"
//修饰基本类型
typedef int INTEGER;
typedef *int INT;
int sum(int a,int b)
{
return a + b;
}
int main(int argc, char* argv[])
{
//typedef的使用
//修饰基本数据类型
INTEGER a = 10;
printf("INTEGER a = %d\n",a);
//修饰指针
int b = 10;
INT bb = &b;
printf("b = %d\n",*bb);
//修饰结构体
typedef struct Person{
char *name;
int age;
} P;
P p1 = {"zs",25},p2 = {"ls",23};
printf("name1 = %s,age1 = %d\n",p1.name,p1.age);
//修饰匿名结构体
typedef struct {
char *color;
int wide;
int high;
} Iphone;
Iphone i4 = {"black",50,100},i5 = {"white",50,150};
printf("i4 color = %s\n",i4.color);
//修饰枚举
typedef enum iColor{kiColorWhite,kiColorBlack} Color;
Color color1 = kiColorWhite,color2 = kiColorBlack;
printf("color1 = %d,color2 = %d\n",color1,color2);
//修饰数组
typedef int NUM[5];
NUM na = {0,1,2,3,4};
printf("na[3] = %d\n",na[3]);
//修饰函数指针?
typedef int (*FUN)(int ,int );
FUN f1 = sum;
int result = f1(2,3);
printf("result = %d\n",result);
return 0;
}
typedef关键字既可以修饰基本数据类型int shot long double char等,也可以修饰数组、指针等类型,关于typedef
的详细应用可以参考如下范例:
#include "stdafx.h"
//修饰基本类型
typedef int INTEGER;
typedef *int INT;
int sum(int a,int b)
{
return a + b;
}
int main(int argc, char* argv[])
{
//typedef的使用
//修饰基本数据类型
INTEGER a = 10;
printf("INTEGER a = %d\n",a);
//修饰指针
int b = 10;
INT bb = &b;
printf("b = %d\n",*bb);
//修饰结构体
typedef struct Person{
char *name;
int age;
} P;
P p1 = {"zs",25},p2 = {"ls",23};
printf("name1 = %s,age1 = %d\n",p1.name,p1.age);
//修饰匿名结构体
typedef struct {
char *color;
int wide;
int high;
} Iphone;
Iphone i4 = {"black",50,100},i5 = {"white",50,150};
printf("i4 color = %s\n",i4.color);
//修饰枚举
typedef enum iColor{kiColorWhite,kiColorBlack} Color;
Color color1 = kiColorWhite,color2 = kiColorBlack;
printf("color1 = %d,color2 = %d\n",color1,color2);
//修饰数组
typedef int NUM[5];
NUM na = {0,1,2,3,4};
printf("na[3] = %d\n",na[3]);
//修饰函数指针?
typedef int (*FUN)(int ,int );
FUN f1 = sum;
int result = f1(2,3);
printf("result = %d\n",result);
return 0;
}