【注:本程序验证是使用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的更多相关文章

  1. PHP中define()和const定义常量的区别

    在PHP中可以通过define()和const两种方式定义常量可是在开发中我们应该什么时候用define()定义常量,什么时候用const定义常量? 这两种方式定义常量的主要区别是什么? 从5.3版本 ...

  2. PHP中定义常量

    PHP中定义常量的方式如下: define(常量名,常量值); //定义常量PUBLISHER define('PUBLISHER', "O'Reilly & Associates& ...

  3. PHP常量:define()和const的区别

    常量,就是一个用于存储“不会(也不允许)变化的数据”的标识符.比如圆周率,在一定的应用场景中,就是一个固定的值(人为规定为某个值).常量默认大小写敏感.通常常量标识符总是大写的. (1)define( ...

  4. 在php中定义常量时,const与define的区别?

    问]在php中定义常量时,const与define的区别?  [答]使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数.另外const在编译时要比define快很 ...

  5. PHP 中 define() 和 const 定义常量时的区别

    自 PHP 5.3.0 起,有两种方式定义常量,使用 const 关键字或者 define() 函数:   1 2 const FOO = 'BAR'; define('FOO', 'BAR'); 这 ...

  6. const define 定义常量的区别

    1.用const定义常量在编译的时候,提供了类型安全检查,而define 只是简单地进行字符串的替换 2.const定义的常量,会分配相应的内存空间.而define没有分配空间,只是在程序中与处理的时 ...

  7. 为什么很多人使用#define而不是const定义常量

    众所周知,C语言一开始只有#define,C程序员用#define定义符号常量.但后来ANSI C加入了const限定符,而const应该比#define更好,为什么现在的C程序员还在大量使用#def ...

  8. PHP中定义常量define与const

    我们通常把不经常变的值定义成常量,常量一般用全部大写来表示,前面不加美元符号,也可减少团队开发的出错.那么define和const有什么区别呢? 1.const是一个语言结构:而define是一个函数 ...

  9. php----------const 定义的常量和define()定义的常量的区别?

    用法一:const用于类成员变量,一经定义不可修改,define用于全局常量,不可用于类成员变量的定义,const可在类中使用也可以在类外面使用,define不能. 定义:const 常量名=值; 没 ...

随机推荐

  1. 通过HttpServletRequest重写+filter 添加header

    问题说明 需要做的事情比较简单,就是通过filter 重写httpservletrequest ,同时给予request 添加header 主要是通过HttpServletRequestWrapper ...

  2. HTML5 文件读取

    一.定义 input的file类型会渲染为一个按钮和一段文字.点击按钮可打开文件选择窗口,文字表示对文件的描述(大部分情况下为文件名):file类型的input会有files属性,保存着文件的相关信息 ...

  3. Poj 2411 Mondriaan's Dream(状压DP)

    Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Description Squares and rectangles fascina ...

  4. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn 题解

    P2701 [USACO5.3]巨大的牛棚Big Barn 题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他 ...

  5. 洛谷 P3088 [USACO13NOV]挤奶牛Crowded Cows 题解

    P3088 [USACO13NOV]挤奶牛Crowded Cows 题目描述 Farmer John's N cows (1 <= N <= 50,000) are grazing alo ...

  6. Python配置环境变量

    Python安装完成之后,运行cmd(win+R): 在控制台中输入Python,若安装完成,会在控制台中打开Python:   如果Python未添加至环境变量,则会提示"python不是 ...

  7. 01-复杂度2 Maximum Subsequence Sum (25 分)

    Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous subsequence is defined to ...

  8. linux高性能服务器编程 (一) --Tcp/Ip协议族

    前言: 在学习swoole入门基础的过程中,遇到了很多知识瓶颈,比方说多进程.多线程.以及进程池和线程池等都有诸多的疑惑.之前也有学习相关知识,但只是单纯的知识面了解.而没有真正的学习他们的来龙去脉. ...

  9. AT1879 2 つの山札

    题面 题解 直接求解比较麻烦,考虑将问题进行转化. 设序列\(a = \{3, 1, 4, 2, 5\}, b = \{3, 2, 4, 1, 5\}\),那么我们构造一个正方形方格,将\(a\)放在 ...

  10. ICEM-三角形特征几何

    原视频下载地址:https://pan.baidu.com/s/1qY8SKri 密码: wf17