3.01定义常量之define
【注:本程序验证是使用vs2013版】
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #pragma warning(disable:4996)
- /*
- #define
- 1、定义一个标识符来表示一个常量。
- 2、特点:定义的标识符不占变量内存,占用的是程序空间的内存,预编译后这个符号就不存在了。
- 3、预编译所执行的操作就是简单的“文本”替换
- 4、使用:#define 标识符 常量 //注意, 最后没有分号
- #undef M //宏的中止位置
- */
- /*
- 1、宏只是简单的替换,在预编译时将程序中出现前面的内容,用后边的完全替换
- */
- # define NUM // #undef 之前出现的 NUM 全部用5代替
- #define b "at" //"at" 会在程序会完全替代 b
- /*
- #define c "at 宏定义也不是说后面东西随便写,不能把字符串的两个""拆开。
- #define 0x abcd 宏定义前面的那个必须是合法的用户标识符
- */
- /*
- 2、带参的宏,
- 每个宏变量都要加括号 遇到MAX(1+2,value)则会把它替换成:((1+2)>(value)?(1+2):(value))
- 如果不括起来, 遇到MAX(1+2,value)则会把它替换成: 1+2>value?1+2:value 这样什么运算都不是了,会报错
- */
- #define MAX(a,b) ((a)>(b)?(a):(b))
- /*
- 3、'#'用于把宏定义中的参数两端加上字符串的""
- 比如,这里STR(my#name)会被替换成"my#name"
- 一般由任意字符都可以做形参,但以下情况会出错:
- STR())这样,编译器不会把“)”当成STR()的参数。
- STR(, )同上,编译器不会把“, ”当成STR的参数。
- STR(A, B)如果实参过多,则编译器会把多余的参数舍去。(VC++2008为例)
- STR((A, B))会被解读为实参为:(A, B),而不是被解读为两个实参,第一个是(A第二个是B)。
- */
- #define STR(str) #str
- /*
- 4、‘##’用于实现函数实参中多个参数的 使用
- 例如:#define FUN(a,b) vo##a##b()
- 那么FUN(id ma,in)会被替换成void main()
- */
- /*
- 5、多行宏定义
- #define doit(m,n) for(int i=0;i<(n);++i)\
- {\
- m+=i;\
- }
- */
- int main(void){
- int a= NUM;
- printf("a=%d\n",b);
- #undef NUM
- //int a2= NUM; //这里再使用NUM就会报错
- printf("%s\n", b);
- printf("MAX(1,2) = %d\n",MAX(,));
- printf("\n");
- system("pause");
- return ;
- }
3.01定义常量之define的更多相关文章
- PHP中define()和const定义常量的区别
在PHP中可以通过define()和const两种方式定义常量可是在开发中我们应该什么时候用define()定义常量,什么时候用const定义常量? 这两种方式定义常量的主要区别是什么? 从5.3版本 ...
- PHP中定义常量
PHP中定义常量的方式如下: define(常量名,常量值); //定义常量PUBLISHER define('PUBLISHER', "O'Reilly & Associates& ...
- PHP常量:define()和const的区别
常量,就是一个用于存储“不会(也不允许)变化的数据”的标识符.比如圆周率,在一定的应用场景中,就是一个固定的值(人为规定为某个值).常量默认大小写敏感.通常常量标识符总是大写的. (1)define( ...
- 在php中定义常量时,const与define的区别?
问]在php中定义常量时,const与define的区别? [答]使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数.另外const在编译时要比define快很 ...
- PHP 中 define() 和 const 定义常量时的区别
自 PHP 5.3.0 起,有两种方式定义常量,使用 const 关键字或者 define() 函数: 1 2 const FOO = 'BAR'; define('FOO', 'BAR'); 这 ...
- const define 定义常量的区别
1.用const定义常量在编译的时候,提供了类型安全检查,而define 只是简单地进行字符串的替换 2.const定义的常量,会分配相应的内存空间.而define没有分配空间,只是在程序中与处理的时 ...
- 为什么很多人使用#define而不是const定义常量
众所周知,C语言一开始只有#define,C程序员用#define定义符号常量.但后来ANSI C加入了const限定符,而const应该比#define更好,为什么现在的C程序员还在大量使用#def ...
- PHP中定义常量define与const
我们通常把不经常变的值定义成常量,常量一般用全部大写来表示,前面不加美元符号,也可减少团队开发的出错.那么define和const有什么区别呢? 1.const是一个语言结构:而define是一个函数 ...
- php----------const 定义的常量和define()定义的常量的区别?
用法一:const用于类成员变量,一经定义不可修改,define用于全局常量,不可用于类成员变量的定义,const可在类中使用也可以在类外面使用,define不能. 定义:const 常量名=值; 没 ...
随机推荐
- Linux下搭建iSCSI共享存储的方法 Linux-IO Target 方式CentOS7-1810下实现
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- 【POJ1573】Robot Motion
题目传送门 本题知识点:模拟 本题的题意也很简单. 给出一个矩阵,矩阵里面有着东南西北(上下左右)的指示,当机器人走到上面时则会按照指示前进.机器人每次都从最上面一行的某一列进入. 需要判断的是机器人 ...
- element ui分页器的使用
<el-pagination layout="total, prev, pager, next, jumper" :current-page="pageInfo.p ...
- 解决Shell脚本$'\r': command not found问题
造成这个问题的原因是Windows下的空行,我们只需要把文件转成unix就好 Centos下,执行yum install dos2unix,然后dos2unix [file],再执行shell命令就好 ...
- OpenFOAM——运动和静止的同心圆柱之间的流动(库埃特流)
本算例来自<ANSYS Fluid Dynamics Verification Manual>中的VMFL001: Flow Between Rotating and Stationary ...
- devops 运维平台相关知识
1.https://choerodon.io/zh/community/ (代码 https://github.com/choerodon/choerodon) 猪齿鱼 2.https://www.o ...
- func 传参异步方法
public async Task<T> AssignAsync<T>(string key, Func<T> acquire) {} var result = a ...
- 关于idea跳过错误编译的理解, 跳过报错的代码启动项目去debug测试其他正常的代码
关于idea跳过错误编译的理解 2018年07月13日 19:06:32 weixin_39669410 阅读数 1296 其实idea使用eclipse编译器可以实现跳过报错的代码启动项目去de ...
- visual studio 无添加视图 选项
我是因为 UserController未继承 Controller
- 使用bert进行情感分类
2018年google推出了bert模型,这个模型的性能要远超于以前所使用的模型,总的来说就是很牛.但是训练bert模型是异常昂贵的,对于一般人来说并不需要自己单独训练bert,只需要加载预训练模型, ...