C语言(typedef 类型取别名)

关键字:typedef

简单地用一个新的类型名代替原有的类型名

作用:

1、不同名称代表在干不同的事情typedef int jint;;

2、不同情况下,使用不同的别名

if defined(__cplusplus) //c++

typedef _JNIEnv JNIEnv;

typedef _JavaVM JavaVM;

3.书写简洁

struct Student{
	char name[20];
	int age;
};

//Age int类型的别名
typedef int Age;
//Age int类型指针的别名
typedef int* Ap;
//结构体取别名
typedef struct Student m_s;
typedef struct Student* p_s;
复制代码

简写

typedef struct Student{
	char name[20];
	int age;
}m_s,*p_s;
复制代码
typedef struct Student{
	char name[20];
	int age;
}MS,*PS;

//Age int类型的别名
typedef int Age;
//Age int类型指针的别名
typedef int* Ap;
////结构体取别名
//typedef struct Student MS;
//typedef struct Student* PS;

void main(){
	Age a = 15;
	Ap p = &a;
	//结构体变量
	MS s1 = { "xiaoming", 20 };
	//结构体指针
	PS ps = &s1;
	printf("name:%s  age:%d\n", s1.name, s1.age);
	printf("name:%s  age:%d\n", ps->name, ps->age);
	getchar();
}

复制代码

说明:

1、以上的方法实际上是为特定的类型指定了一个同义字 ;

2、用typedef只是对已经存在的类型指定一个新的类型名,而没有创造新的类型;

3、用typedef声明数组类型、指针类型,结构体类型、共用体类型、枚举类型等,使得编程更加方便;

4、typedef与#define表面上有相似之处, 但仍有本质区别:

5、当不同源文件中用到同一类型数据时,常用typedef声明一些数据类型。可以把所有的typedef名称声明单独放在一个头文件中,然后在需要用到它们的文件中用#include指令把它们包含到文件中。这样编程者就不需要在各文件中自己定义typefef名称了。

6、使用typedef名称有利于程序的通用与移植。有时程序会依赖于硬件特性,用typedef类型就便于移植。

你可能感兴趣的:(C语言(typedef 类型取别名))