您的位置:首页 > 编程语言 > C语言/C++

宏和函数的比较(C/C++)

2016-03-18 21:18 267 查看
宏和函数及在C/C++中的比较:
1、频繁使用且执行简单的计算可以使用宏,而其他较为繁琐、复杂的程序可以用函数实现。
2、宏定义时与类型无关,而函数需要注意参数的类型等。
3、宏定义的名字全为大写,而函数名则是使用字母和“_”来进行命名。
4、宏参数具有一定的副作用,需注意:“()”的使用,而函数不存在这些问题。
5、在C++中,一般不使用宏(宏函数 --> 内联函数, 宏常亮 --> const 、enum)。
6、C语言中,宏不能调试,而且没有类型安全检查,而在C++中可以。
#include<stdio.h>
#define M 9
#define CAT(X,Y) X##Y
#define PRINTF(FORMAT,VALUE) \
printf("the value of "#VALUE ":"FORMAT"",VALUE);

int main()
{
PRINTF("%d\n",M);
printf("%d\n",CAT(123,321));
printf("file:%s\t line:%d\t date:%s\t time:%s\n",\
__FILE__,__LINE__,__DATE__,__TIME__);
return 0;
}


本文出自 “花开彼岸” 博客,请务必保留此出处http://zxtong.blog.51cto.com/10697148/1752737
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: