C和C++中typedef struct的区别
2015-09-10 16:24
597 查看
1.C中typedef struct的用法
问题1:typedef是什么意思?
typedef 是C语言中专门为数据类型起别名的关键字问题2:struct在C语言中如何使用?
例如定义一个student数据类型:struct student{ int x; int y; };
此时用户声明该数据类型的对象时,必须这样:
struct student stu;
问题3:如何简化P2中的声明写法呢?
C语言的聪明者做了这样的修改:typedef struct student{ int x; int y; }stu;其表达含义是:stu和struct student是等价,是表示这种数据类型,此时可以:
stu s1;<div>struct student s2;</div>
可能读者会这样询问?能不能这样定义呢?typedef struct student{ int x; int y; };这种使用方法是错误的,想一想逻辑就可以了,发明typedef struct的人是想把C语言中结构体struct和typedef的有点结合在一块,而上述定义显然是只起到了结构的作用,并没有为struct student起别名的含义,故这种写法是不可取,因此没有存在的必要;
下面说一说这种修改的相当于:struct student{ int x; int y; };
typedef struct student stu;但是为什么不直接这样写呢?查阅前人资料,可能是因为这种做法多写了一个struct吧;
2.C++中typedef struct的阐述
问题1:typedef struct 和struct有区别吗?
两者是有区别的:typedef struct student{ int x; int y; }stu;这种写法是和C语言中写法是一个意思,此处不加解释了;
struct student{
int x;
int y;
}stu;这种写法是区别于C语言中的,它表示新声明student数据类型,然后创建该类型的对象stu;
另外C语言中没有这种写法;
相关文章推荐
- C++map的用法
- C语言的整型溢出问题
- <<C++编程思想 第2卷>>读后感
- stl_set
- C++中双冒号(::)和冒号(:)的用法
- c++ --> typedef用法总结
- C++类的私有继承
- c++用法的学习心得
- c++用法的学习心得
- 深入解析C++中的函数模板和函数的默认参数
- [iOS学习]C语言-04-程序循环结构-do…while循环解说
- 深入理解C++枚举类型enum
- 黑马程序员——C语言笔记之指针
- Ubuntu下编译C/C++文件
- [C/C++]_[初级]_[替换过滤utf8字符串里无效字符]
- C/C++中const关键字详解
- [C/C++]_[初级]_[替换过滤utf8字符串里无效字符]
- C语言指针学习
- 详解C++中的内联函数和函数重载
- C语言中内存分布