请问c语言中的macro是什么意思,与function有什么区别

如题所述

macro是预处理宏 比如 #define PI 3.14这些以#开头的
用途,
1、控制编译流程,不需要编译的代码可以不处理,减小目标程序的大小。
2、统一使用一些常量。不至于重复键入。
3、一些快速小过程。
宏在编译时就被翻译成常量。
由于这种翻译,宏可以写一些小过程,当成内嵌过程,调用时比function要快
在c++中这种宏过程基本上被inline function,宏常量被const取代。
所以在c++中基本上只用来编译流程控制,c中用的范围广一些。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-28
macro 是宏
function是函数
macro 是替换
function 是调用

function是单独的一段程序,程序中只是调用它,而macro 使用处,编译时会用全部替换成定义的语句。
使用 function省程序code ,使用macro不省程序,只省源文件 .c本回答被提问者采纳
第2个回答  2011-05-17
function 是函数或子过程, 一段代码集合 规范了输入/输出 参数

macro 是宏, 是一个替代符号 相当于代数中的变量

如 (x+y)^z = R 代数中 令 A = x + y
则 R = A^z 可以说是 A 是 (x + y) 的宏

在C中宏可以替代一段代码

宏在编译时由预处理过程 替换成实际的代码,然后再编译

所以很多地方用宏会导致同样的代码多处存在,会增大程序体积,但可以较快地执行

用函数可以减少程序体积,但调用有时间损耗。
第3个回答  2011-05-17
macro是“宏”的意思,主要是将C中的宏定义,function是“功能,方法”的意思,主要是指C中的函数,两个都只是讲解内容,不属于关键字!
相似回答