类型声明typedef和define的区别
来源:互联网 发布:kali linux webcrack 编辑:程序博客网 时间:2024/05/19 03:28
我们来看两个例子
1、用typedef定义类型
typedef unsigned int U32..........U32 var=3;
2、用define定义类型
#define U32 unsigned int........U32 var=3
同样是定义成无符号整形,但是两种定义方法是有区别的。区别在于:typedef定义的类型是在编译阶段处理的,而#define是在预处理阶段处理的。
对于编译流程主要有四个阶段:预处理阶段,编译阶段,汇编阶段,链接阶段。
预处理阶段:
预处理器(cpp)根据以字符#开头的命令(directives),修改原始的C程序。如hello.c中#include <stdio.h>指令告诉预处理器读系统头文件stdio.h的内容,并把它直接插入到程序文本中去。结果就得到另外一个C程序,通常是以.i作为文件扩展名的。
编译阶段:
在这个阶段中,首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,把代码翻译成汇编语言,生成汇编代码,以.s为后缀的文件。
汇编阶段:
这个阶段中是把编译阶段生成的”.s”文件转成目标文件.o文件。
链接阶段:
在成功编译之后,就进入了链接阶段。在这里涉及到一个重要的概念:函数库。函数库一般分为静态库和动态库两种。静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为”.a”。动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为”.so”。
- 类型声明typedef和define的区别
- typedef 和 #define 修饰指针类型的区别
- typedef和define的区别
- typedef 和 define的区别
- define和typedef的区别
- #define和typedef的区别
- Typedef和define的区别
- #define和typedef的区别
- Typedef和define的区别
- #define和typedef的区别
- Typedef和#define的区别
- typedef 和 define的区别
- typedef和#define的区别
- define和typedef的区别
- typedef和#define的区别
- typedef和define的区别
- typedef和#define的区别
- typedef和#define的区别
- javasctipt 创建对象的方式
- Android系统init.rc分析
- asp.net 生成静态html页面
- CMake 基本使用方法--写CMakeList.txt
- 教你如何用Windows7笔记本打造WiFi热点
- 类型声明typedef和define的区别
- 如何使用CMAKE生成makefile文件
- 学习红黑树
- Android::开机自启动C程序
- 如何去掉右键显卡中的图形选项和图形属性
- JVM内存参数详解及其配置调优
- 可滚动结果集
- 黑客攻防:探秘黑客的巢穴! 黑客——比特网
- 华表js 操作