C零散知识点汇总之typedef关键字

简介: C零散知识点汇总之typedef关键字

C零散知识点汇总之typedef关键字


typedef -----> type rename而不是type define。

typedef的真正含义是给一个已经存在的数据类型(是数据类型而不是变量)取一个别名,而非定义一个新的数据类型。

typedef和#define的区别

1、功能不同:typedef是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字。 #define是预处理指令。

2、执行时间不同:typedef在编译阶段有效,由于是在编译阶段,因此typedef有类型检查的功能。#define则是宏定义,发生在预处理阶段,也就是编译之前,它只进行简单而机械的字符串替换,而不进行任何检查。

3、作用域不同:#define没有作用域的限制,只要是之前预定义过的宏,在以后的程序中都可以使用。而typedef有自己的作用域。

4、修饰指针类型时不同:

Typedef int * pint;
#define PINT int *  
Const pint p;    //p不可更改,p指向的内容可以更改,相当于 int * const p;  
Const PINT p;    //p可以更改,p指向的内容不能更改,相当于 const int *p;或 int const *p;  
pint s1, s2;     //s1和s2都是int型指针  
PINT s3, s4;     //相当于int * s3,s4;只有一个是指针。
相关文章
|
5月前
|
C语言
C语言学习记录——枚举(定义、与结构体的区别、优点)
C语言学习记录——枚举(定义、与结构体的区别、优点)
59 3
|
6月前
|
存储 C++ 容器
C/C++常见的易模糊知识点(结构体、指针、STL)
C/C++常见的易模糊知识点(结构体、指针、STL)
C/C++常见的易模糊知识点(结构体、指针、STL)
|
存储 Linux C语言
C语言函数和指针的关系之三(完结)
C语言函数和指针的关系之三(完结)
55 0
|
存储 编译器 C语言
【C语言进阶篇】看完这篇结构体文章,我向数据结构又进了一大步!(结构体进阶详解)(上)
【C语言进阶篇】看完这篇结构体文章,我向数据结构又进了一大步!(结构体进阶详解)
119 0
|
C语言
【C语言进阶篇】看完这篇结构体文章,我向数据结构又进了一大步!(结构体进阶详解)(下)
【C语言进阶篇】看完这篇结构体文章,我向数据结构又进了一大步!(结构体进阶详解)(下)
292 0
|
安全 编译器 C语言
C++ 命名空间、域、缺省参数、函数重载、引用、auto、内联函数的知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(二)
C++ 命名空间、域、缺省参数、函数重载、引用、auto、内联函数的知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(二)
|
程序员 C语言 C++
C++ 命名空间、域、缺省参数、函数重载、引用、auto、内联函数的知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(一)
C++ 命名空间、域、缺省参数、函数重载、引用、auto、内联函数的知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(一)
|
存储 C语言 C++
进阶C语言 第四章-------《自定义类型》 (结构体、枚举、联合)知识点+完整思维导图+深入细节+通俗易懂+基本练习题+建议收藏(二)
进阶C语言 第四章-------《自定义类型》 (结构体、枚举、联合)知识点+完整思维导图+深入细节+通俗易懂+基本练习题+建议收藏(二)
|
Linux C语言 C++
进阶C语言 第四章-------《自定义类型》 (结构体、枚举、联合)知识点+完整思维导图+深入细节+通俗易懂+基本练习题+建议收藏(一)
进阶C语言 第四章-------《自定义类型》 (结构体、枚举、联合)知识点+完整思维导图+深入细节+通俗易懂+基本练习题+建议收藏(一)
c++第十篇结构体例子
c++第十篇结构体例子