首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

#define 以及##

#define定义标示符 #define定义标示符就是将一个名称起一个别名,在程序运行之前使用别名将原来的名字替换掉,从而达到简化代码书写的作用 #define的语法 define name stuff...name是别名,stuff是原本的名称 #define NUM 120 #define STR "abcdef" int main() { printf("%d\n", NUM + 10);...printf("%s", STR); return 0; } 其实#define就是将NUM 和 STR 简单的进行了转换,再进行计算即可 define也可以将复杂的符号进行简单的替换...int a = 0; return 0; } 注意:#define 后面最好不要加上分号,避免不必要的错误 #define定义宏 宏的声明方式 define name( parament-list...define只是进行了简单的替换,并不会进行运算 #define ADD(x) x+x #define MUL(x) x*x int main() { int ret = ADD(2);

61821
您找到你想要的搜索结果了吗?
是的
没有找到

CC++中----->#define定义函数和自定义函数各方面比较

#define定义函数和自定义函数各方面比较 代码长度 #define宏:每次使用时,宏代码都被插入到程序中。...除了非常小的宏之外,程序的长度将大幅度增长 函数函数代码只出现于一个地方:每次使用这个函数时,都调用那个地方的同一份代码 执行速度 #define宏:更快 函数: 存在函数调用、返回的额外开销 操作符优先级...参数求值 #define宏:参数用于宏定义时,每次都将重新求值,由于多次求值,具有副作用的参数可能会产生不可预测的结果。...参数类型 #define宏:宏与类型无关,只要参数的操作是合法的,它可以用于任何参数类型。 函数函数的参数是与类型有关系的,如果参数的类型不同,就需要使用不同的函数,即使它们执行的任务是相同的。...总的来说#define定义函数优缺点如下: 优点:可完成函数调用的功能,对输入参数没有限制,又能减少系统开销,提高运行效率。因为它是在预处理阶段即进行了宏展开,在执行时不需要转换,即在当地执行。

1.3K20

C++避坑之#define常量和形似函数的宏

我们不妨将func1的实现放在main函数之后,看看有什么结果,如下例所示: #include #include using namespace std; #define...确实是按照顺序来全局进行替换,初始定义A的值为10,因此main函数中的A和func2中的A均被替换为10,而最后在处理到func1的函数体的时候,A重新被定义为20,所以func1中的A被替换为20。...因此,在C++中我们尽量避免使用#define来定义一个常量,应使用const和enum来定义常量。 尽量避免形似函数的宏 #define的另外一个需要注意的地方就是,尽量减少形似函数宏的使用。...同时,因为我们使用了函数,因此也遵守了作用域和访问的规则,使得我们的代码更具标准性和规则性。 总结 在C++中,尽量避免#define常量和形似函数宏的使用。...引用《Effective C++》中的话来做总结就是: 对于单纯常量,最好以const对象和enum替换#define。 对于形似函数的宏,最好改用inline函数替换#define

26910

如何理解 SAP UI5 的 sap.ui.define 函数

Understanding sap.ui.define by Hello World 随着 1.28 版本中 sap.ui.define 函数的引入,SAPUI5 引入了对异步模块定义 (AMD) 的支持...下面我们通过一个具体的例子来讲解 sap.ui.define 的工作原理。...这里要注意的重要变化是在第一行中,函数调用 sap.ui.controller () 已被注释掉,以便为 AMD 函数 sap.ui.define () 让路,它具有以下语法: sap.ui.define...(3) vFactory 是一个强制性的工厂函数,用于计算模块的值。 每个依赖模块名称都作为参数传递给这个工厂函数,其顺序与它们在字符串数组中指定的顺序相同。...最后 onAfterRendering 函数使用 sap.m.MessageToast.show () 在屏幕上显示一个简短的 Hello World 消息。

79320

C语言宏定义(#define定义常量​、#define定义宏​、 带有副作用的宏参数、 宏替换的规则、 宏函数的对比)

当预处理器搜索#define定义的符号的时候,字符串常量的内容并不被搜索。​ 七、宏与函数的对比​ 宏通常被应用于执行简单的运算。...#define MAX(a, b) ((a)>(b)?(a):(b)) 那为什么不用函数来完成这个任务? 原因有二: 1....用于调用函数和从函数返回的代码可能比实际执行这个小型计算工作所需要的时间更多。所以宏比函数在程序的规模和速度方面更胜一筹。 2. 更为重要的是函数的参数必须声明为特定的类型。...所以函数只能在类型合适的表达式上使用。反之,这个宏怎可以适用于整形、长整型、浮点型等可以用于 > 来比较的类型。宏是类型无关的。 和函数相比宏的劣势: 1....宏有时候可以做函数做不到的事情。比如:宏的参数可以出现类型,但是函数做不到。

14610

typedef 和define的区别

总结一下typedef和#define的区别 1.概念   #define 它在编译预处理时进行简单的替换,不作正确性检查。它是预处理指令。  ...例子: #define: #define DO double DO val =5;//相当于 double va =5; #define FUN(X) X+5 int va = FUN(3); //...dypedef定义数组 typedef double arr[3];//arr就是一个长度为3的double类型数组 arr arr1; //相当于 double arr1[3] //用dypedef定义函数指针...typedef void (*fun)();//表示fun是一个指向 void类型的指针函数 void StrGet() { qDebug()<<"str"; } fun f1=StrGet...; f1(); 2.区别 执行时间不一样     #define 是在预处理阶段,也就是在编译之前进行替换工作     typedef 是在编译阶段,会进行类型检查 作用域不同     #define

1.1K70

Oracle define用法简介教程

本文链接:https://blog.csdn.net/u014427391/article/details/101052911 继上一篇博客Oracle绑定变量学习笔记,再写一篇define变量的简单教程...文章目录 1、define常量用法 2、&和&&符号用法 1、define常量用法 注意:define常被误解为定义变量,其实不然,define定义的是字符常量,define定义一下常量,然后用&或者...&&符号进行引用 环境准备,先建表来实验: create table t as select * from dba_object; define一个常量a,然后直接查询用&符号表示 SQL> define...,就明白了 这里不用define定义常量,直接用&和&&符号 SQL> select * from t where object_id = &b; 如图,会提示你输入值 ?...define字符类型的常量 如果define定义的字符类型的常量,引用时候要加上单引号 select * from t where object_name = '&a'; ?

1.2K30

【C语言】#define的认识

4.宏函数的对比 宏通常被应⽤于执⾏简单的运算。 ⽐如在两个数中找出较⼤的⼀个时,写成下⾯的宏,更有优势⼀些。 #define MAX(a, b) ((a)>(b)?...(a):(b)) 那为什么不⽤函数来完成这个任务? 原因有⼆: 1. ⽤于调⽤函数和从函数返回的代码可能⽐实际执⾏这个⼩型计算⼯作所需要的时间更多。...所以宏⽐函数在程序的规模和速度⽅⾯更胜⼀筹。 2. 更为重要的是函数的参数必须声明为特定的类型。所以函数只能在类型合适的表达式上使⽤。...## 被称 为记号粘合 举个例子: 这⾥我们想想,写⼀个函数求2个数的较⼤值的时候,不同的数据类型就得写不同的函数。...// 替换到宏体内后 float##_max ⽣成了新的符号 float_max 做函数名 在实际开发过程中##使⽤的很少. 6.命名约定 ⼀般来讲函数的宏的使⽤语法很相似。

4710

const与#define的区别、优点

const与#define的区别 编译器处理方式不同 define宏是在预处理阶段展开。 补充:预处理器根据以#开头的命令,修改原始的程序。...咱们的#define也是,仅仅是单纯的文本替换。 const常量是编译运行阶段使用。 类型和安全检查不同 define宏没有数据类型,不做任何类型检查,仅仅是展开。...const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而 #define定义的常量在内存中有若干个拷贝...define是不能进行调试的,因为在预编译阶段就已经替换掉了。 const优点 const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。...#define的优点 宏可以定义一些函数,const不可以 宏可以使代更码简洁 使用宏可以方便代码维护 宏还可以定义带参数的宏,做到一定程度的泛型(利用#或者##操作符)

1.7K10
领券