C++struct与typedef struct
Posted 久病成良医
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++struct与typedef struct相关的知识,希望对你有一定的参考价值。
struct 与 typedef struct
1. c
typedef的作用
typedef可以声明新的类型名来代替已有的类型名,但却不能增加新的类型。
typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。
在编程中使用typedef目的一般有两个,一个是给变量提供一个易记且意义明确的新名字(类型有新别名,方便变量的定义),另一个是简化一些比较复杂的类型声明。
struct 与 typedef struct 的区别
typedef是类型定义的意思。
typedef struct 是为了使用这个结构体方便。
具体区别在于:
若这样来定义结构体的话
struct student // 结构体名是 student
{
int a,
};
在声明student 的变量时,需要这样写
struct student stu1; // 必须要写struct,这样每次声明变量都需要写struct,很麻烦
若用typedef来定义结构体的话
typedef struct student
{
int a,
}Stu; // 将 struct student 重新命名为 Stu
在声明变量时就可以这样写
Stu stu1;
区别就在于使用时,是否可以省去struct这个关键字。
标准形式
先定义后声明
//定义结构体
struct teacher{
char name[20];
int age;
char email[50];
};
//声明结构体变量
struct teacher teacher1;
定义的同时进行声明
//定义时声明变量
struct teacher{
char name[20];
int age;
char email[50];
}teacher1, teacher2;
使用typedef定义结构体
//定义结构体
typedef struct Student
{
char name[50];
int age;
}Stu;
//声明结构体变量
Stu stu1;
直接(不使用Student)
//定义结构体
typedef struct
{
int a;
}Stu;
//声明结构体变量
Stu stu1;
2. c++
其次:在c++中如果用typedef的话,又会造成区别:
struct Student
{
int a;
}stu1;//stu1是一个变量
typedef struct Student2
{
int a;
}stu2;//stu2是一个结构体类型
以上是关于C++struct与typedef struct的主要内容,如果未能解决你的问题,请参考以下文章
在C和C++中struct与typedef struct的区别详细介绍
C语言结构体中struct和typedef struct有啥区别?