A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

带参宏和函数的区别:
宏调用时,只是用实参代替形参,实现简单的字符串替换,不是计算表达式的值;
函数调用时,首先计算表达是的值,然后在进行值传递,将实参的值传递给形参。
其实他俩的区别还有很多,希望大神给出答案!
#include <stdio.h>
#define Macro(z) ((z)*(z))
int Founction(int z){
    return ((z)*(z));
}
int main()
{
    int j=1;
    while (j<=5)
        printf("%d\n",Macro(j++));  //运行结果为:2、12、30。因为这里的Macro(j++)=((j++)*(j++)),当j=1时,第一个j++等于1,第二个j++就等于2,以此类推。
    int i=1;
    while (i<=5)
        printf("%d\n",Founction(i++));//运行结果为:1、4、9、16、25。因为先把1带入函数中,返回一个结果,依次增加i的值,结果就是这样了。
    return 0;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马