| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 546 人关注过本帖
标题:出个宏定义的题目
只看楼主 加入收藏
qq383264679
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:155
专家分:130
注 册:2012-1-19
结帖率:88.89%
收藏
已结贴  问题点数:20 回复次数:6 
出个宏定义的题目
/* Note:Your choice is C IDE */
#include "stdio.h"
#define A 100

void main()
{
    int i = 2, j = 3;
   
    int max(int a,int b);
    printf("i+A = %d\n",i +A);   
    printf("max = %d\n",max(i,j));          //A的值为什么会改变
   
    #undef A
    #define A 10
    printf("i+A = %d\n",i +A);   
    printf("max = %d\n",max(i,j));
}
int max(int a,int b)
{
    return a>b?a+A:b+A;
}         
/******************************************************/
#include "stdio.h"
#define A 100
int max(int a,int b)
{
    return a>b?a+A:b+A;
}
void main()
{
    int i = 2, j = 3;
    printf("i+A = %d\n",i +A);   
    printf("max = %d\n",max(i,j));      //A的值为什么没改变?
   
    #undef A
    #define A 10
    printf("i+A = %d\n",i +A);   
    printf("max = %d\n",max(i,j));
}
自己总结的(不知道在任何情况下是不是这个样子):undef截至的宏只是对程序后面的有效,前面的无效;

               
搜索更多相关主题的帖子: max include return choice 
2012-07-04 19:14
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
宏是编译时起作用的 编译是从上到下的
2012-07-04 19:17
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:20 
第一段

程序代码:
void main()
{
    int i = 2, j = 3;

    int max(int a,int b);
    printf("i+A = %d\n",i +100);
    printf("max = %d\n",max(i,j));

    printf("i+A = %d\n",i +10);
    printf("max = %d\n",max(i,j));
}
int max(int a,int b)
{
    return a>b?a+10:b+10;
}




[ 本帖最后由 zklhp 于 2012-7-4 19:22 编辑 ]
2012-07-04 19:20
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
第二段

程序代码:
int max(int a,int b)
{
    return a>b?a+100:b+100;
}
void main()
{
    int i = 2, j = 3;
    printf("i+A = %d\n",i +100);
    printf("max = %d\n",max(i,j));
    printf("i+A = %d\n",i +10);
    printf("max = %d\n",max(i,j));
}



[ 本帖最后由 zklhp 于 2012-7-4 19:23 编辑 ]
2012-07-04 19:21
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以上两段就是宏替换后的 也就不用解释什么了罢
2012-07-04 19:24
qq383264679
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:155
专家分:130
注 册:2012-1-19
收藏
得分:0 
用语言描述下 为什么?
自上而下·
  和全部  局部 有关系么?
2012-07-04 19:34
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
编译器自上而下读代码 就是从第一行读到最后一行呗

全部 局部 不知道你指的是什么。。
2012-07-04 19:35
快速回复:出个宏定义的题目
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019287 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved