c语言define和typedef区别和使用】的更多相关文章

define完全可以理解替换,typedef代表别名.听着差不多的意思,那2者区别在哪? 先来个简单例子查看基本使用. //define和typedef区别 #define DB double //替换 define 被替换的内容 替换的内容 typedef double db; //别名 typedef 原来的类型名 新的别名 //typedef需要分号 ,typeof 去掉以后符合语法规则,define去掉就会报错 void main() { //看不出区别 DB d1 = 1.2,d2=1…
1)     #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错.例如:#define PI 3.1415926程序中的:area=PI*r*r 会替换为3.1415926*r*r如果你把#define语句中的数字9 写成字母g 预处理也照样带入. 2)typedef是在编译时处理的.它在自己的作用域内给一个已经存在的类型一个别名,但是You cannot use the typedef spe…
1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错.例如: #define PI 3.1415926 程序中的:area=PI*r*r 会替换为3.1415926*r*r 如果你把#define语句中的数字9 写成字母g 预处理也照样带入. 2)typedef是在编译时处理的.它在自己的作用域内给一个已经存在的类型一个别名. 3)typedef int * int_ptr;与#define…
1.#define define是预处理指令,在编译时不进行任何检查,只进行简单的替换 宏定义的一般形式为: #define 宏名 字符串 这里所说的字符串是一般意义上的字符序列,不要和C语言中的字符串等同,它不需要双引号. 2.typedef typedef是在C语言中用来为复杂的声明定义简单的别名,它本身是一种存储类的关键字,与auto.extern.mutable.static.register等关键字不能出现在同一个表达式中. typedef取别名的一般形式为: typedef 旧名字…
typedef和define的详细区别 2011-04-19 15:11 firnow firnow 字号:T | T 对于都可以用来给对象取一个别名的Typedef和define来说,是有区别的.本文通过对typedef和define的介绍,来给读者详细的讲解它们存在的本质区别,供参考. AD:51CTO学院:IT精品课程在线看! typedef是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字. #define是预处理指令.下面让我们一起…
一.#define #define 是宏定义命令,宏定义就是将一个标识符定义为一个字符串,源程序中的该标识符均以指定的字符串来代替,是预编译命令,因此会在预编译阶段被执行 1.无参宏定义 无参宏的宏名后不带参数 其定义的一般形式为: #define  标识符  字符串 其中的"#"表示这是一条预处理命令.凡是以"#"开头的均为预处理命令."define"为宏定义命令."标识符"为所定义的宏名."字符串"可以…
define和typedef的区别 define是单纯的字符替换,typedef是重新定义了新的类型 #include <stdio.h> #define CHAR1 char* typedef char* CHAR2; int main(){ char c = 'a'; CHAR1 pc1,pc2;//pc1是char指针,但pc2是char pc1 = &c; pc2 = c; *pc1 = 'w'; printf("%c ", c); CHAR2 pc3,pc…
总结一下在非类中使用const关键字定义常量时的初始化问题,亲测VS2015.顺便记录#define宏和typedef的区别. 1 首先对const声明的常量的初始化做简单小结: , w2 = , w3 = ; int * const p1 = &w1, P1_1; //p1:指针常量,指针是常量; //p1_1:int型变量 ; //p2:常量指针,指向常量的指针; //p2_2:int const型 ; //p3:常量指针,指向常量的指针: //p3_3:const int型 ; //tem…
#define用法 1. 定义简单的常数:定义常量,便于修改 #define N 1000 2. 定义简单的函数:注意多使用括号 define可以像函数那样接受一些参数,如下: #define max(x,y) (x)>(y)?(x):(y) 这个定义就将返回两个数中较大的那个,看到了吗?因为这个“函数”没有类型检查,就好像一个函数模板似的,当然,它绝对没有模板那么安全就是了.可以作为一个简单的模板来使用而已.但是这样做的话存在隐患,例子如下: #define Add(a,b) a+b; 在一般…
#define(宏定义)只是简单的字符串代换(原地扩展),它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了. typedef是为了增加可读性而为标识符另起的新名称(仅仅只是个别名),它的新名字具有一定的封装性,以致于新命名的标识符具有更易定义变量的功能,它是语言编译过程的一部分,但它并不实际分配内存空间. 一般都遵循#define定义“可读”的常量以及一些宏语句的任务,而typedef则常用来定义关键字.冗长的类型的别名. typedef是语句( 以':'结尾),而#defin…