| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1436 人关注过本帖
标题:求#define祥解
只看楼主 加入收藏
afraidhlq
Rank: 1
来 自:重庆市
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-3-16
收藏
 问题点数:0 回复次数:12 
求#define祥解
#include<iostream.h>
#define PI 3.1415926
#define FUDGE(R) R+PI
#define PR(a) cout<<"a="<<int(a)<<"\t";
#define PRINT(a) PR(a);cout<<"\n";
#define PRINT2(a,b) PR(a);PRINT(b)
#define PRINT3(a,b,c) PR(a);PRINT(b,c)
#define MAX(a,b) (a<b?b:a)
void main()
{
  {
    int x=2;
    PRINT(x*FUDGE(2));
   }
  {
    for(int cel=0; cel<=100;cel+=50)
    PRINT2(cel,15*cel+32);
  }
  {
   int x=1, y=2;
   PRINT3(MAX(x++,y),x,y);
   PRINT3(MAX(x++,y),x,y);
  }
}
搜索更多相关主题的帖子: define 
2008-03-19 23:59
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
程序代码:
#include<iostream>//使用新版本的头文件

using namespace std;

#define PI 3.1415926
#define FUDGE(R) R+PI
#define PR(a) cout<<#a"="<<int(a)<<"\t";  //运算符的特殊作用
#define PRINT(a) PR(a)cout<<"\n"
#define PRINT2(a,b) PR(a)PRINT(b)
#define PRINT3(a,b,c) PR(a)PRINT2(b,c)//这个地方少个2,另外一些没必要的";"可以去掉
#define MAX(a,b) (a<b?b:a)
int main()
{
    {
        int x=2;
        PRINT(x*FUDGE(2));
    }
    {
        for(int cel=0; cel<=100;cel+=50)//少一个{}
        {
            PRINT2(cel,15*cel+32);
        }
    }
    {
        int x=1, y=2;
        PRINT3(x,x,y);
        PRINT3(x,x,y);
    }
    return 0;
}

雁无留踪之意,水无取影之心
2008-03-20 12:57
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
#运算符的特殊作用

雁无留踪之意,水无取影之心
2008-03-20 12:58
afraidhlq
Rank: 1
来 自:重庆市
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-3-16
收藏
得分:0 
谢谢,不过那程序我又 对照了一启遍
和书一个符号不差,
我抄下来的
书上有;

[fly]我要考软件工程师[/fly]
[red]别笑!![/red]
2008-03-21 16:24
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
你发的程序是没有错,但估计不是你自己意图,你那个FOR语句的意图肯定是想都循环,但你那样写,只是输出第一个数的时候循环了,后面的一个没有循环.

另外我用了那个#运算符,只是教你一点知识而已,没说你错

书只是用来参考的,真正实践要自己来做

雁无留踪之意,水无取影之心
2008-03-21 19:13
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
得分:0 
在书上看到的 #define T ab 说什么a和b是两个 而 加上 a##b的话就是一个数了
不明白 是什么意思
#好象还有个 是 帮助字符加上双引号的
#还有什么用法吗
还有就是 define 和 typedef 有什么区别
在什么时候用哪个好
define 好象是在预编译期 typedef 是在编译期

[[it] 本帖最后由 newyj 于 2008-3-21 20:08 编辑 [/it]]
2008-03-21 20:04
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
#define a b
宏定义,就是把后面出现的a全部替换(字面替换)成b
还可以定义成一个类似函数的操作(不很了解)

楼上
typedef是类型定义,与#define完全没关系,没什么可比。

Fight  to win  or  die...
2008-03-22 00:35
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
在书上看到的 #define T ab 说什么a和b是两个 而 加上 a##b的话就是一个数了

//a##b的作用是将ab连接在一起,成为一个标识符,如果你的源码里没有这个标识符的话,就会编译出错,假如你的代码里有很多变量(标识符),类似于这样,X1,X2,X3,X4...;如果你要用循环语句进行赋值或其它操作时,你可以这样:
#define X(a) X##a

for(i=1;i<=n;i++)//n已定义
X(i)=i;//这样就分别给X1,X2....都赋值了,你可以自己试一下,我现在在外地,不在寝室,没编译器

雁无留踪之意,水无取影之心
2008-03-22 19:20
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
得分:0 
谢谢 回答 那要是 不加上#的话 那 ab 有是什么意思
2008-03-22 19:53
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
那就是将T用ab代替,简单的替换

雁无留踪之意,水无取影之心
2008-03-22 23:08
快速回复:求#define祥解
数据加载中...
 
   



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

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