typedef关键字用法 免费下载

合集下载

typedef关键字的用法(一)

typedef关键字的用法(一)

typedef关键字的用法(一)

Typedef关键字的用法

在C语言中,typedef是一个非常有用的关键字,用于为已存在

的数据类型定义一个新的名称。通过使用typedef关键字,可以简化

复杂数据类型的使用,并提高代码的可读性。下面是一些typedef关

键字的用法。

1. 为基本数据类型定义新名称

typedef int myInt;

上述代码为int基本数据类型定义了一个新的名称myInt。现在,我们可以使用myInt来定义变量,就如同使用int一样。

2. 为自定义结构体定义新名称

typedef struct {

int x;

int y;

} Point;

上述代码为一个无名struct结构体定义了一个新的名称Point。现在,我们可以使用Point来声明struct类型的变量。

3. 为指针类型定义新名称

typedef int* IntPointer;

上述代码为int指针类型定义了一个新的名称IntPointer。现在,我们可以使用IntPointer来声明int类型的指针变量。

4. 为函数指针定义新名称

typedef void (*FuncPointer)(int, int);

上述代码为接受两个int参数且返回值为void的函数指针类型

定义了一个新的名称FuncPointer。现在,我们可以使用FuncPointer来声明函数指针变量。

5. 为枚举类型定义新名称

typedef enum {

RED,

GREEN,

BLUE

} Color;

上述代码为一个无名enum枚举类型定义了一个新的名称Color。现在,我们可以使用Color来声明enum类型的变量。

CC++中typedef关键字详解

CC++中typedef关键字详解

CC++中typedef关键字详解

typedef是C/C++中⼀个很关键的关键字,它的作⽤是⽤来给类型起别名。因为在遇上不同数据类型,尤其是复杂类型,typedef的⽤法有⼀些细微的差距,所以很多⼈会有⼀些疑惑,今天我就来整理⼀下。

typedef关键字主要⽤来给⼀下⼏种类型起别名:

基本数据类型

结构体

数组

枚举类型

指针

函数指针

指针函数

1. 基本数据类型

使⽤typedef给基本数据类型起别名很简单:

//typedef关键字数据类型别名

typedef int Myint;

typedef double Mydouble;

起了别名以后,别名就相当于原类型名的同义词,能使⽤原类型的地⽅就可以使⽤别名。

2. 结构体

和基本数据类型类似,将别名放在结构体之后

struct Person{

string name;

int age;

};

//typedef关键字结构体别名

typedef struct Person P;

3. 数组

给数组起别名时,typedef的⽤法和单个元素有些区别,别名被挤在数组元素类型和数组元素个数之间。

//typedef关键字数组元素类型别名[数组元素个数]

typedef int C[10];

C t; // t的类型是int[10],也就是包含10个int类型的数组

4. 枚举类型

和结构体类型类似

enum Color{Red,Green,Blue} primaryColor;

//typedef关键字枚举类型别名

typedef Color primaryColor;

primaryColor G = Red

typedef class用法

typedef class用法

一、typedef关键字的作用

typedef 是C语言中用来定义新数据类型的关键字,它可以给现有的

数据类型起一个新的名字。通过typedef关键字,我们可以简化复杂

数据类型的使用,增强程序的可读性和可维护性。

二、typedef的语法格式

typedef 的语法格式如下:

typedef 原类型名新类型名;

其中,原类型名可以是基本数据类型(int、char、float等)、结构体、联合体或枚举类型,新类型名是我们想要定义的新类型的名称。

三、使用typedef定义基本数据类型

1. 定义int类型

我们可以使用typedef定义一个新的int类型:

typedef int Integer;

这样,我们就可以用Integer代表int类型,使用起来更加直观和易读。

2. 定义char类型

同样的,我们也可以使用typedef定义一个新的char类型:

typedef char Letter;

这样,我们就可以用Letter代表char类型,使得代码更加易懂。

3. 定义float类型

typedef关键字也可以用来定义新的float类型:

typedef float Realnum;

这样,我们就可以用Realnum代表float类型,让程序更易读易懂。

四、使用typedef定义结构体类型

1. 定义结构体类型

通过typedef关键字,我们可以给结构体类型起一个新的名字:typedef struct

{

int age;

char name[20];

} Person;

这样,我们就可以使用Person代表这个结构体类型,方便我们在程序中使用。

c语言中typedef用法

c语言中typedef用法

c语言中typedef用法

在C语言中,`typedef`是一个关键字,用于为已知的数据类型定义一个新的名字。这个新名字可以让变量更具描述性,或者简化一些复杂的类型声明。`typedef`的作用相当于为现有类型创建一个别名。

`typedef`的用法有以下几种:

1. 为基本数据类型定义别名:

```c

typedef unsigned int size;

typedef unsigned int16 u16;

typedef unsigned int8 u8;

```

在这个例子中,`size`、`u16`和`u8`分别是`unsigned int`、`unsigned int16`和`unsigned int8`的别名。

2. 为结构体定义别名:

```c

typedef struct tagMyStruct {

int iNum;

long lLength;

} MyStruct;

```

这个例子中,`MyStruct`是一个结构体的别名,该结构体包含两个成员:`int iNum`和`long lLength`。

3. 为枚举类型定义别名:

```c

typedef enum {

yes,

no

} YesNo;

```

在这个例子中,`YesNo`是`enum`类型的别名,包含两个枚举值:`yes`和`no`。

4. 为数组定义别名:

```c

typedef uint8 MyArray[6];

```

这个例子中,`MyArray`是一个包含6个`uint8`类型元素的数组的别名。

总之,`typedef`在C语言中的主要用途是为现有数据类型创建别名,以便让变量更具描述性或简化类型声明。typedef定义的新类型名与其对应的原类型名具有相同的语法和语义,但具有更清晰的含义。

typedef用法

typedef用法


以上的定义可以分为两步形成
第一步:定义结构体 struct LNode{ ElemType data; struct LNode *next; }; 第二步:利用typedef定义别名 typedef struct LNode LNode; typedef struct LNode *LinkList; //所以明显LinkList 是结构体指针的名称
为什么定义的名称要相同? 请看下面程序: typedef struct LNode { int *elem; int length; }SqList; 比较: 应改为 LNode La,Lb; struct LNode SqList La,Lb;
ຫໍສະໝຸດ Baidu
La,Lb
即:typedef stuct LNode SqList;

类似的可以做如下推广: typedef ARR2 ARR3[4]; //实际上等价于定义ARR3为一个三元数组 typedef int ARR3[4][4][4];



(1) (2) (3) (4) (5) (6)
(7)
处理动态链表所需的函数 库函数提供动态地开辟和释放存储单元的 有关函数: malloc函数 其函数原型为void *malloc(unsigned int size);其 作用是在内存的动态存储区中分配一个长度为 size的连续空间。此函数的值(即“返回值”) 是一个指向分配域起始地址的指针(类型为 void)。如果此函数未能成功地执行(例如内 存空间不足),则返回空指针(NULL)。

typedef struct union用法 -回复

typedef struct union用法 -回复

typedef struct union用法-回复

typedef和struct是C语言中的关键字,用于定义自定义的数据类型。同时,union也是C语言中的关键字,用于定义一种特殊的数据类型,可以在同一个存储空间中存储不同类型的数据。本文将详细介绍typedef、struct和union的用法,并对其进行逐步解释。

一、typedef用法

typedef关键字用于给已有的数据类型取一个新的名字,也就是为类型定义一个别名。这个别名将可以作为新的类型名来使用。typedef的语法如下:

typedef alreadyExistingDataType newDataTypeName;

例如,如果我们要为int类型定义一个别名,可以这样写:

typedef int myInt;

在这里,myInt就是int类型的别名。接下来,我们可以使用myInt作为int类型的替代,例如:

myInt x = 10;

注意,使用typedef定义的类型名与基本的数据类型没有区别,仅仅是为了让代码更易读和理解。

二、struct用法

struct是C语言中的结构体关键字,用于定义一种复合数据类型,可以包含不同类型的数据成员。结构体的定义包括结构体名和结构体成员,结构体的成员可以是任何合法的C数据类型,也可以是其他的结构体。

struct的定义语法如下:

struct structName {

member1;

member2;

...

};

例如,我们可以定义一个学生的结构体如下:

struct Student {

int id;

char name[20];

qt中typedef的用法

qt中typedef的用法

在C++编程中,typedef是一种用于定义类型别名的关键字。在Qt框架中,typedef也常被用于简化复杂数据类型的声明和使用。

以下是在Qt中使用typedef的一些常见场景:

1.

定义新的数据类型:

2.

cpp复制代码

typedef QList<int> IntList;

这样,你就可以使用IntList作为QList<int>的别名,而不是每次都写QList<int>。

2. 定义函数指针类型:

cpp复制代码

typedef void(*SignalType)(int);

在Qt中,信号(signals)和槽(slots)机制经常使用这种函数指针类型。上面的代码定义了一个名为SignalType的函数指针类型,该函数接受一个int参数并返回void。

3. 定义枚举类型:

cpp复制代码

typedef QFlags<Qt::AlignmentFlag> AlignmentFlags;

Qt的QFlags模板类用于表示位集,它可以方便地处理枚举值的组合。上面的代码定义了一个新的类型AlignmentFlags,它是Qt::AlignmentFlag枚举类型的位集别名。

4. 简化复杂类型声明:

对于复杂的模板类型或指针类型,typedef可以帮助你简化声明。

cpp复制代码

typedef QSharedPointer<QObject> QObjectPointer;

这样,你就可以使用QObjectPointer代替原始的复杂类型。

5. 定义数组类型:

c++的typedef的用法

c++的typedef的用法

C++中typedef关键字的用法

本文介绍了C++中typedef的用法和作用。typedef是一种用来创建类型别名的关键字,它可以为一个已有的数据类型定义一个新的名称,以方便程序员使用。typedef有以下几种用途:

定义类型别名,提高代码的可读性和一致性。

定义与平台无关的数据类型,实现跨平台的编程。

定义复杂的声明,简化代码的编写和理解。

定义函数指针,方便函数作为参数或返回值传递。

一、typedef的基本语法

typedef的语法如下:

typedef type new_type_name;

其中,type是已有的数据类型,new_type_name是我们为该类型定义的新名称。例如:

typedef int INT; //定义INT为int类型的别名

typedef char* PSTR; //定义PSTR为char*类型的别名

使用typedef定义的新类型名可以像原类型名一样使用,例如:

INT a = 10; //相当于int a = 10;

PSTR s = "Hello"; //相当于char* s = "Hello";

注意,typedef并不会创建新的数据类型,只是为已有的数据类型起一个新名字。因此,使用typedef定义的新类型名和原类型名是完全等价的,可以互相赋值或比较。例如:

int b = a; //合法

PSTR t = s; //合法

if (a == b) //合法

if (s == t) //合法

二、typedef的用途

2.1 定义类型别名

使用typedef为一个已有的数据类型定义一个新名称,可以提高代码的可读性和一致性。例如,在C语言中,经常需要使用指针来操作字符串或数组。如果直接使用char或int等类型来声明指针变量,可能会出现以下问题:代码不够直观和清晰,容易出错或混淆。例如:

python typedef用法

python typedef用法

Python typedef用法

1. 介绍typedef的概念和作用

typedef是C语言中的一个关键字,用于定义新的数据类型,是类型定义的缩写。在C语言中,当我们需要定义一个新的数据类型时,可以使用typedef来简化代码,并增加代码的可读性。

在Python中,虽然没有typedef这个关键字,但是我们可以通过一些方法来实现类似的功能。

2. 在Python中使用自定义类来实现typedef

在Python中,我们可以使用自定义类来实现类似C语言中的typedef功能。我们可以定义一个Point类来表示二维坐标点:

```python

class Point:

def __init__(self, x, y):

self.x = x

self.y = y

```

这样,我们就可以使用Point类来表示二维坐标点,增加代码的可读性。

3. 在Python中使用dtuple来实现typedef

Python的collections模块中提供了一个namedtuple函数,可以

用来创建一个命名元组,即一个带有字段名的元组。我们可以使用namedtuple来定义新的数据类型,类似于C语言中的typedef功能。 ```python

from collections import namedtuple

Point = namedtuple('Point', ['x', 'y'])

```

这样,我们就可以使用Point来表示二维坐标点,增加代码的可读性。

4. 在Python中使用typehint来实现typedef

在Python 3.5及以上版本中,引入了type hint的概念,可以用来

typedef的基本用法

typedef的基本用法

typedef的基本⽤法

1. 四个⽤途

⽤途⼀:

定义⼀种类型的别名,⽽不只是简单的宏替换。可以⽤作同时声明指针型的多个对象。⽐如:

char* pa, pb; // 这多数不符合我们的意图,它只声明了⼀个指向字符变量的指针,和⼀个字符变量;

以下则可⾏:

typedef char* PCHAR; // ⼀般⽤⼤写

PCHAR pa, pb; // 可⾏,同时声明了两个指向字符变量的指针

虽然:

char *pa, *pb;

也可⾏,但相对来说没有⽤typedef的形式直观,尤其在需要⼤量指针的地⽅,typedef的⽅式更省事。

⽤途⼆:

⽤在旧的C的代码中(具体多旧没有查),帮助struct。以前的代码中,声明struct新对象时,必须要带上struct,即形式为: struct 结构名对象名,如:

struct tagPOINT1

{

int x;

int y;

};

struct tagPOINT1 p1;

⽽在C++中,则可以直接写:结构名对象名,即:

tagPOINT1 p1;

估计某⼈觉得经常多写⼀个struct太⿇烦了,于是就发明了:

typedef struct tagPOINT

{

int x;

int y;

}POINT;

POINT p1; // 这样就⽐原来的⽅式少写了⼀个struct,⽐较省事,尤其在⼤量使⽤的时候

或许,在C++中,typedef的这种⽤途⼆不是很⼤,但是理解了它,对掌握以前的旧代码还是有帮助的,毕竟我们在项⽬中有可能会遇到较早些年代遗留下来的代码。

⽤途三:

⽤typedef来定义与平台⽆关的类型。

c++typedef的用法结构体

c++typedef的用法结构体

c++typedef的用法结构体

结构体是C++中非常重要的数据类型,它可以将不同类型的数据组合在一起,形成一个新的数据类型。在实际编程中,我们经常需要定义

结构体来表示复杂的数据结构。而在使用结构体时,我们可以通过typedef关键字来给结构体起一个别名,以方便我们在代码中使用。

1. typedef的基本用法

在C++中,我们可以使用typedef关键字为已有的数据类型、指针、数组、函数或结构体等起一个别名,从而方便我们在代码中使用。我

们可以通过以下方式来定义一个结构体和给它起一个别名:

```cpp

typedef struct {

int id;

string name;

int age;

} Person;

```

在这里,我们使用typedef关键字为一个包含id、name和age三个成员变量的结构体起了一个别名Person。这样,我们在代码中就可以直接使用Person来表示这个结构体,而不需要再写出完整的定义。

2. 结构体的嵌套使用

在实际编程中,我们经常需要使用结构体的嵌套,即在一个结构体中包含另一个结构体作为成员变量。通过typedef的方式,我们可以方便地使用嵌套结构体,使得代码更加清晰易读。我们可以定义一个包含多个学生信息的结构体,并给它起一个别名:

```cpp

typedef struct {

int id;

string name;

int age;

} Student;

typedef struct {

int classId;

string className;

Student students[50];

typedef 用法

typedef 用法

typedef 用法

typedef是C语言中的一个关键字,用于定义别名。通常,我们使用typedef为数据类型或复杂结构体定义一个短而易懂的别名,以方便我们在程序中的使用。

具体来说,typedef可以用来定义以下几个东西:

1. typedef基本数据类型别名

例如,我们可以使用typedef为int定义一个别名myint,如下所示:

```

typedef int myint;

```

这样,在程序中我们就可以使用myint代替int类型了,例如: ```

myint num = 10;

```

2. typedef复杂数据类型别名

我们可以使用typedef为结构体、联合体、指针等复杂数据类型定义别名,例如:

```

typedef struct {

int id;

char name[20];

float score;

} Student;

```

这样,我们就定义了一个名为Student的结构体类型,包含三个成员变量id、name和score,我们可以使用Student作为结构体类型的别名,例如:

```

Student s1;

```

3. typedef函数指针别名

我们可以使用typedef为函数指针定义别名,例如:

```

typedef int (*FuncPtr)(int, int);

```

这样,我们就定义了一个名为FuncPtr的函数指针类型,该函数指针的参数为两个int型变量,返回值也是int型变量,我们可以使用FuncPtr作为函数指针的别名,例如:

```

int add(int a, int b)

{

return a + b;

typedef在java中用法

typedef在java中用法

一、typedef在Java中的基本概念

在Java语言中,typedef是一种用于定义类型别名的关键字。通过使用typedef关键字,我们可以给一个已有的数据类型起一个新的名字,从而使程序更易读、易懂。在其他编程语言中,typedef通常用于简

化复杂的数据类型命名,提高代码的可读性和可维护性。

二、typedef在Java中的用法

在Java中,虽然没有提供类似于C或C++中的typedef关键字,但

是我们可以通过其他方式实现类似的功能。以下是一些常见的typedef用法:

1. 使用final关键字定义类型别名

在Java中,可以使用final关键字定义一个常量,并将其用作类型别名。例如:

final int SIZE = 10;

通过定义一个常量SIZE,并在程序中使用它来代表特定的数据类型,

就可以达到类似于typedef的效果。

2. 使用接口或抽象类定义类型别名

在Java中,可以通过定义接口或抽象类来实现类型别名的功能。例如:public interface MyType {

int value = 10;

}

通过定义一个接口MyType,并在程序中实现该接口,就可以将其用作类型别名。

3. 使用枚举类型定义类型别名

在Java中,可以通过定义枚举类型来实现类型别名的功能。例如:enum Color {

RED, GREEN, BLUE;

}

通过定义一个枚举类型Color,并在程序中使用它来代表特定的数据类型,就可以达到类似于typedef的效果。

三、typedef在Java中的优缺点

尽管在Java中没有直接提供typedef关键字,但是通过上述的方法,也可以实现类似的功能。然而,这种方式也存在一些优缺点:

typedefine用法

typedefine用法

typedefine⽤法

typedef为C语⾔的关键字,作⽤是为⼀种数据类型定义⼀个新名字。这⾥的数据类型包括内部数据类型(int,char等)和⾃定义的数据类型(struct等)。

⽤法:

变量别名

例如:

单个变量:

typedef int size;

size a; 等价于 int a;

数组:

typedef char line[10];

line text; 等价于 char line[10];

指针

typedef char* pstr;

pstr p; 等价于char* p;

替换复杂声明

typedef & 复杂的变量声明

理解复杂声明可⽤的“右左法则”:

从变量名看起,先往右,再往左,碰到⼀个圆括号就调转阅读的⽅向;括号内分析完就跳出括号,还是按先右后左的顺序,如此循环,直到整个声明分析完。

int (*func)(int *p);

⾸先找到变量名func,外⾯有⼀对圆括号,⽽且左边是⼀个*号,这说明func是⼀个指针;然后跳出这个圆括号,先看右边,⼜遇到圆括号(只有函数后⾯才跟形参圆括号),这说明 (*func)是⼀个函数,所以func是⼀个指向这类函数的指针,即函数指针,这类函数具有int*类型的形参,返回值类型是int,此处就是声明函数。

int (*func[5])(int *);

func 右边是⼀个[]运算符,说明func是具有5个元素的数组;func的左边有⼀个*,说明func的元素是指针(注意这⾥的*不是修饰func,⽽是修饰 func[5]的,原因是[]运算符优先级⽐*⾼,func先跟[]结合)。跳出这个括号,看右边,⼜遇到圆括号,说明func数组的元素是函数类型的指针,它指向的函数具有int*类型的形参,返回值类型为int。

typedef用法

typedef用法

typedef用法

typedef是C/C++的关键字,它可以给现有的类型定义一个别名。使用typedef后,程序中可以使用别名替换原有类型名,提高代码的可读性,提高维护的便捷性。它的形式很简单:

typedef type alias;

它的意思是让编译器根据type来理解alias,相当于alias是一个type类型名的别名,也就是说alias类型完全等同于type类型。以下将以实例展开typedef的用法:

(1)给原有类型定义别名

typedef long MY_LONG;//给long类型定义一个别名MY_LONG MY_LONG l1 = -32L;

(2)给指针类型定义别名

typedef int *pInt;

pInt p1, p2;

(3)给数组类型定义别名

typedef int ARR[3];

ARR ar1 = { 1, 2, 3 };

(4)给函数类型定义别名

typedef void (*pfnFUNC)(int);

void func(int n)

{

tprintf(func : %d

n);

}

pfnFUNC pf1 = func;

以上就是typedef用法的示例,它可以用来替换一般类型,指针类型,数组类型和函数类型,使代码中更加直观,简单,易读易维护,其中给函数定义别名对使用指针函数特别有用。

由于typedef是C/C++语言内置的关键字,在实际的编程中,经常会需要用它来给特定类型定义一个别名,这种情况可能出现在需要使用复杂类型的时候,可以用一个简洁明了的名字取代长且难以理解的类型,提升代码可读性,减少编程中出错的几率,使维护变得更加便捷。

typedef用法

typedef用法

typedef用法小结:

在C语言的情况下,与C++稍有出入。

这两天在看程序的时候,发现很多地方都用到typedef,在结构体定义,还有一些数组等地方都大量的用到.但是有些地方还不是很清楚,今天下午,就想好好研究一下.上网搜了一下,有不少资料.归纳一下:

来源一:Using typedef to Curb Miscreant Code

Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用typedef 能为代码带来意想不到的好处,通过本文你可以学习用typedef 避免缺欠,从而使代码更健壮。

typedef 声明,简称typedef,为现有类型创建一个新的名字。比如人们常常使用typedef 来编写更美观和可读的代码。所谓美观,意指typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。本文下面将竭尽全力来揭示typedef 强大功能以及如何避免一些常见的陷阱。

如何创建平台无关的数据类型,隐藏笨拙且难以理解的语法?

使用typedef 为现有类型创建同义字。定义易于记忆的类型名, typedef 使用最多的地方是创建易于记忆的类型名,用它来归档程序员的意图。类型出现在所声明的变量名字中,位于''typedef'' 关键字右边。例如:

typedef int size;

此声明定义了一个int 的同义字,名字为size。注意typedef 并不创建新的类型。它仅仅为现有类型添加一个同义字。你可以在任何需要int 的上下文中使用size:void measure(size * psz);

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

typedef用法

1、为现有数据类型定义同义词

typedef使用最多的地方是创建易于记忆的类型名,用它来归档程序员的意图。

例如:

typedef int size;

此声明定义了一个int的同义字,名字为size。注意typedef并不创建新的类型。

它仅仅为现有类型添加一个同义字。你可以在任何需要int的上下文中使用size:

void measure(size*psz);

size array[4];

2、typedef还可以掩饰复合类型,如指针和数组

z数组

例如:typedef char Line[81];表示使用Line代表具有81个元素的char类型数组。如果要生成类似的数据可以使用如下形式:Line text,secondline;

相当于char test[81];char secondline[81];

z隐藏指针语法

例如:typedef char*pstr;

int mystrcmp(pstr,pstr);相当于

int mystrcmp(char*,char*);

注意:标准函数strcmp()有两个‘const char*'类型的参数。因此,它可能会误导人们象下面这样声明mystrcmp(),

int mystrcmp(const pstr,const pstr);

这是错误的,‘const pstr'被解释为‘const char*‘(一个指向char的常量指针),而不是‘char*'(指向char的指针)。

修改:添加,typedef const c pstr;

记住:不管什么时候,只要为指针声明typedef,那么都要在最终的typedef 名称中加一个const,以使得该指针本身是常量,而不是对象

z链表中应用

例如:

typedef struct node

{

char name[20];

struct node*link;

}stu;

3、代码简化

例如:typedef int(*PF)(const char*,const char*);

使用PF类型作为函数指针的同义字,该函数有两个const char*类型的参数以及一个int类型的返回值。

4、促进扩平台开发

typedef有另外一个重要的用途,那就是定义机器无关的类型,例如,你可以定义一个叫REAL的浮点类型,在目标机器上它可以i获得最高的精度:

typedef long double REAL;

在不支持long double的机器上,该typedef看起来会是下面这样:

typedef double REAL;

并且,在连double都不支持的机器上,该typedef看起来会是这样:、

typedef float REAL;

你不用对源代码做任何修改,便可以在每一种平台上编译这个使用REAL类型的应用程序。唯一要改的是typedef本身。在大多数情况下,甚至这个微小的变动完全都可以通过奇妙的条件编译来自动实现。不是吗?标准库广泛地使用typedef来创建这样的平台无关类型:size_t,ptrdiff和fpos_t就是其中的例子。

此外,象std::string和std::ofstream这样的typedef还隐藏了长长的,难以理解的模板特化语法

5、C语言实例

(1)typedef long byte_4;给已知数据类型long起个新名字,叫byte_4。

(2)typedef struct tagMyStruct

{

int iNum;

long lLength;

}MyStruct;

完成两个工作,一是定义了struct tagMyStruct结构,可以用struct tagMyStruct varName来定义变量,但要注意,使用tagMyStruct varName来定义变量是不对的,因为struct和tagMyStruct合在一起才能表示一个结构类型。二是typedef为这个新的结构起了一个名字,叫MyStruct。可以使用MyStruct varName来定义变量。

6、typedef与define的区别

(1)例子:typedef char*pStr1;

#define pStr2char*

pStr1s1,s2;

pStr2s3,s4;

在上述的变量定义中,s1、s2、s3都被定义为char*,而s4则定义成了char,不是我们所预期的指针变量,根本原因就在于#define只是简单的字符串替换而typedef则是为一个类型起新名字。

(2)例子:

#define f(x)x*x

main()

{

int a=6,b=2,c;

c=f(a)/f(b);//被解释为c=a*a/b*b即6*6/2*2=36

printf("%d\\n",c);

}

以下程序的输出结果是:36

注意:使用#define定义时,如果定义中包含表达式,必须使用括号,则上述定义应该如下定义才对:

#define f(x)(x*x)

(3)define宏定义有一个特别的长处:可以使用#ifdef,#ifndef等来进行逻辑判断,还可以使用#undef来取消定义。

(4)typedef也有一个特别的长处:它符合范围规则,使用typedef定义的变量类型其作用范围限制在所定义的函数或者文件内(取决于此变量定义的位置),而宏定义则没有这种特性。

(5)对复杂变量建立一个类型别名的方法很简单,你只要在传统的变量声明表达式里用类型名替代变量名,然后把关键字typedef加在该语句的开头就行了。

相关文档
最新文档