define宏定义和const常量定义之间的区别

宏:通常把是把一些常用字符串,基本便离开定义宏

1.编译时刻不同:const是在编译的时候编译,宏是在预编译的时候编译(预编译就是程序加载的时候,xcode上面会有一个进度条,显示进度,这个时候其实就是在预编译)

2.编译检测:const有编译检测,而宏没有编译检测

3.宏的好处:可以定义方法和函数

4.宏的弊端:大量使用宏,会导致预编译时间过长

const的作用

1.const仅仅是用来修饰右边变量(基本变量,指针变量)

2.被const修饰的变量只读

例如:

加上const之后,a为只读,不能赋值

时间: 2024-12-27 12:38:23

define宏定义和const常量定义之间的区别的相关文章

宏定义、const变量、枚举的区别

1.宏定义是在预处理阶段进行展开:cnost变量是在编译运行阶段使用 2.宏定义没有类型,不做任何类型检查,仅仅是进行展开:const修饰的变量具有具体的类型,编译阶段执行检查 3.宏定义在文件中有多少次就展开多少次,不会分配内存空间:const修饰的变量会在内存中分配空间 1.枚举属于常量:但宏定义不是常量 2.枚举常量是实体的一种:但宏定义不是实体 3.枚举具有类型,但宏定义没有类型,枚举与普通变量有作用域和值,但宏定义没有,它是一种预处理替换

宏常量,宏替换,const常量

(1)宏常量也称为符号常量,是指用一个标识符号来表示的常量,宏常量是由宏定义编译预处理命令来定义的,宏定义的一般形式:#define 标识符 字符串 宏定义中的标识符被称为宏名,将程序中出现的宏名替换成字符串的过程称为宏替换,宏替换时是不做任何语法检查的,因此,只有在对已经被宏展开后的源程序进行编译时才会发现语法错误 (2)const常量:使用宏常量的最大问题是,宏常量没有数据类型.那么是否可以声明具有某种数据类型的常量呢?这就是const常量 const常量被编译器放在只读存储区,不允许在程序

const常量定义

const关键字 ~~~js const data=10; console.log(data); data=100;//执行错误 const list=[10,20,30]; console.log(list); list[0]=100; console.log(list); 这样写是可以的,常量指的是数组本身,而不是数组里面的值: 数组元素可以变化的,数组不能变更 list=[1,2,3]//报错 lits.push(9); 不影响数组本身方法的调用 这样写也是可以的, 原文地址:https:

如何正确使用const(常量),define(宏)

前言 在开发中,也许我们会经常使用到宏定义,或者用const修饰一些数据类型,经常有开发者不知道怎么正确使用,导致项目中乱用宏定义与const修饰符.本篇主要介绍在开发中怎么正确使用const与define(宏定义) 当我们想定义全局共用的一些数据时,比如通知名字,动画时长等等,我们可以用宏.常量.变量: 宏: // 注意后面不需要带符号 #define ScottDidLoginSuccess @"登陆成功" 变量: // 注意后面一定要带符号 NSString *scottDidL

C++ 文件include规则 常量定义

总结一句话就是: C++的函数声明,变量声明,类定义写在头文件里,而函数实现,变量定义,类方法实现写在.cpp文件中:但是对于内联函数和模版类,函数的实现也要写在头文件里!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1. 将类的成员变量.类方法的定义写在.h中,将类方法的实现写在.cpp中,不要include .cpp文件,不要在.h文件中只写class MyClass; ,一定要写类成员变量和方法的全部定义!!!类方法的实现写在.cpp文件中. 2. 类模版或者模版的定义一定要

【UiBot基础教程】变量与常量 - 定义变量以及变量类型

UiBot中的变量是动态类型的,无需再定义的时候声明变量的类型,即变量的值和类型都可以在运行过程中动态改变.这也符合一般脚本语言如Python.Lua.JavaScript的习惯. 定义变量名的方式是:Dim 变量名再定义变量名的同时可以给变量赋值一个初始值:Dim 变量名 = 值想要定义多个变量的话,可以这样定义:Dim 变量名=值, 变量名1Dim 变量名=值, 变量名=值同理,想要定义一个常量就可以这样定义:Const 常量名=值, 常量名=值 变量名的定义基础规范:变量名可以用英文字母.

const常量类型

1.定义:const常量类型表示一个”常值变量“,其值是不能被修改的变量.即一旦变量被声明为const类型,编译器将禁止任何试图修改该变量的操作. 2.声明:const <声明数据类型> 常量或常量表达式初始化. 3.与宏定义指令#define的区别: #define只是做简单的文本替换,不会做类型检查. const声明时,编译器替换变量时会做严格的类型检查,只有与声明数据类型相同时才做替换. 4.常见的用途: 使用const限定函数的参数和返回值. 1)当函数的参数限定为const类型时,说

随记1(#define a 10和const int a=10)

正是求职笔试旺季,前几天听说有人遇到此题:#define a 10 和const int a=10的区别,废话不多说,下面来解释一下: #define 指令是定义符号常量 const   定义的是常变量(变量的值不能改变) 符号常量只是用一个符号常量代替一个字符串,在预编译的时候进行替换回来.没有类型,在内存中不存在以符号长量命名的内存单元: 而变量是具有类型的,在内存中也存在着以它命名的内存单元,并且可以用sizeof测出他的长度 上面的区别也就是说第一个a是没有类型的,是一个符号常量 而第二

iOS define 宏定义 和 const定义常量区别

const   const 是c++中的修饰符.  c++中常用来定义常量,修饰左值. #define 宏定义语句, 在预处理阶段直接做文本替换,不做类型检查. 它们之间的最大区别: 1.  对于const 变量,系统只给了一个相应的内存地址,而#define则是给出了一个立即数.因为const变量是存放在内存的静态区域中,所以在程序运行过程中const变量只有一个拷贝,而#define 所定义的宏变量却有多个拷贝,所以宏在程序运行过程中所消耗的内存要比const变量的大得多.#define所定