1.
定义不一样 define定义后面不用加分号,并且它的别名在对象的前面 typedef需要加分号,并且它的别后面替换对象的前面
2.
原理不一样 #define是预处理中的宏定义命令,在预处理时进行简单的字符串替换,不作正确性检查,只有在编译已被展开的源程序时才会发现可能的错误并报错,例如: 对于第二个输出,我们想要的是(5+1)*6=36,但是宏只是进行了简单的替换5+1*6=11,因此使用宏很容易出现错误,如果要避免必须每步加上括号提升计算优先级 typedef是关键字,在编译时处理,有类型检查功能。它在自己的作用域内给一个已经存在的类型一个别名,但不能在一个函数定义里面使用typedef。typedef主要用来定义数组、指针、结构体等类型 ,不仅使程序书写简单,也使意义明确,增强可读性。 使用typedef对一个无符号长整型类型
define是动词下定义的意思,形容词明确的意思
Define有两种不同的用法,可根据语境来区分。
Define作为动词时,一种常见用法是“解释定义”,即通过给出一个事物或概念的定义来帮助他人理解该事物或概念;而作为名词时,它指的是一个词或短语的规定意义,通常显式地列在字典里或使用一些特定的符号标记。
在语言学和语法学中,表述词义或语法规则的定义十分重要,因此,我们需要明确理解 define 的准确含义。
此外还有一些相关概念,如 redefinition 重新定义等。
1.const用于类成员变量的定义,一经定义,不可修改。define不可用于类成员变量的定义,可用于全局常量。
2.const可在类中使用,define不能。
3.const不能在条件语句中定义常量。
4.const只能接受静态的标量,而define可采用任何的表达式。
5.const定义的常量时大小写敏感的,而define可通过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感。
6.const采用一个普通的常量名称。而define可采用表达式作为常量。
7.使用const使得代码简单易读,const本身就是一个语言结构。而define是一个函数。
8.const在编译时比define快很多。