- 定义结构体类型
int x;
int y;
} point;
point var_1; // 定义了变量var_1
point array_1 [10]; // 定义了数组array_1
struct {
point part1;
int part2;
} cplx; // 定义了复杂类型变量cplx
需要说明的是,我们还可以使用下面的方法来定义结构体变量:
对于定义链接队列中的结点,我们可以这样实现:
typedef struct t_node {
int Value;
struct t_node *next;
} Node;
当然也可以这样定义:
typedef strcut t_node Node;
struct t_node {
int Value;
Node *next;
};
- 定义数组类型
typedef int MyIntArray [100];
那么程序中的
MyIntArray ia;
就相当于
int ia[100];
- 定义函数指针
typedef void (*FUNCADDR)(int)
此处FUNCADDR是指向这样一个函数的指针,该函数的返回值为void类型,函数有一个int型的参数。再例如:
void print (int x){
printf (“%d\n”, x);
}
int main (int argc, char *argv[]){
FUNCADDR pFunc;
pFunc = print; // 将指针指向print函数
(*pFunc)(25); // 调用函数print
return 0;
}
函数指针一般用于回调函数、中断处理过程的声明,以及在面向对象程序设计中对事件处理过程的声明。
- 定义类类型
typedef class {
private:
int a;
public:
int b;
} MyClass;
其实这和定义结构体类型非常相似,不过很少有人这么使用。
No comments:
Post a Comment