C++中可以用#define定义其它类型的值吗?

#include<iostream>#include<string>usingnamespacestd;intmain(){#definea"helloworld!"//... #include <iostream>
#include <string>
using namespace std;
int main()
{
#define a "hello world!"//比如这里可以定义string 数据和数字除外还可以定义其它数据的值吗?
string c;
c.append(a);
cout << a << endl;
}
谁能给个例子,比如一个类给替换了,写个例子,不胜感激。
展开
 我来答
孟羽然
推荐于2018-02-12 · TA获得超过2976个赞
知道小有建树答主
回答量:1308
采纳率:70%
帮助的人:560万
展开全部
#define是宏定义,而不是变量定义。
说白了,它只是起到一个简单的文本替换的作用,仅仅在编译时进行文本替换。等编译完成以后,宏就不存在了。

所以,#define和变量类型没有任何关系,你定义成什么内容都可以。甚至可以定义一段代码、一个函数……

例如:

#define A 1000
#define B "HelloWorld"
#define C 'c'
#define D 3.1415
#define MAX(x,y) ((x)>(y)?(x):(y))
#define LOG(msg) fprintf(stderr, "%s\n", msg);
#define LIST(folder) MYFILE *f = get_file_list(folder); \
while (f != NULL) \
{
list_file(f); \
f ++; \
}
archmageee4
推荐于2016-06-08 · TA获得超过1516个赞
知道大有可为答主
回答量:1581
采纳率:78%
帮助的人:905万
展开全部
define 本质上相当于 字符串替换 ,也就是替换你代码里的文本
因此它本身是没有任何类型的,可以是数字 可以是单词 等等
比如
#define AAA 5
那么 当你这么使用时

int a= AAA ;
就相当于定义了一个数字.

而你要是
#define AAA tom
int tom,jerry;
jerry=AAA;
这又相当于 定义了一个单词(标识符),等价于
jerry=tom;

所以 ,define 和类型没啥关系, 他就是相当于替换代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0b5ad4c
2010-07-21
知道答主
回答量:53
采纳率:100%
帮助的人:21.6万
展开全部
可以,define是简单的替代,再预编译时会把被替代的值还原,比如c.append(a),预编译后变成c.append("hello world!"),所以其他类型的也行,只要在还原替代后语法没有错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
saharazp
2010-07-21
知道答主
回答量:7
采纳率:0%
帮助的人:0
展开全部
可以,#define只是在编译时的替换,啥都可以定义,数据,字符串,函数,标识符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式