码迷,mamicode.com
首页 > 编程语言 > 详细

c语言中宏定义和常量定义的区别

时间:2017-11-12 18:38:29      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:include   turn   参数   ons   定义   处理   就是   define   abc   

  他们有共同的好处就是“一改全改,避免输入错误”哪两者有不同之处吗?有的。

  主要区别就在于,宏定义是在编译之前进行的,而const是在编译阶段处理的

宏定义不占用内存单元而const定义的常量占用内存单元

宏定义与const常量有着相同的作用-----用一个符号表示数据,但是,有些书上说定义数组常量不能用const,经过测试也是可以的,环境是vs2015

  常量定义定义数组的长度

  const int N=66;

  int arr[N];

有的书上说是错误的,但经过我在vs2015上测试是可以的

  宏定义定义数组的长度

  #define N 66

  int arr[N];

带参数的宏定义

格式:

#define 宏名(参数列表) 要更换的内容

#define SUM(a,b) a+v

程序代码如下:

S=SUM(6,8);

将宏定义中的a和b分别替换成6和8,替换后的代码是:

s=6+8;

#define没有数据类型,只是单纯的替换

#include "stdafx.h"
#include<stdlib.h>
#define add(a,b) (a)>(b)?(a):(b)
int main()
{   
    printf("%s", add("abc", "bcd"));
    system("pause");
    return 0;
}
#include "stdafx.h"
#include<stdlib.h>
#define add(a,b) (a)>(b)?(a):(b)
int main()
{
    printf("%d", add(1+2, 3+4));
    system("pause");
    return 0;
}

这些都是可以的

所以一般建议使用函数不建议使用宏定义

 

 

 

 

 

 

 

c语言中宏定义和常量定义的区别

标签:include   turn   参数   ons   定义   处理   就是   define   abc   

原文地址:http://www.cnblogs.com/blueberry006/p/7822347.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!