宏定义

didijiji 2012-10-11 07:41:28

#define M "abcd"

这个我知道用在什么地方;


但是,我想,如果去掉双引号呢,下面这个我就不知道有何用处了

#define M abcd
...全文
107 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mujiok2003 2012-10-11
  • 打赏
  • 举报
回复
宏替换就是文本提换,不关心它的内容,这发生在编译之前。只有编译器,链接器才关心符号的意义。


#define N abcd //abcd可能是一个标识符,宏或者lable
//比如abcd是一个枚举值
enum {abcd = 128};

printf("%d", N); // 128
armsword 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

有用啊,比如:
#define EXTERN extern
//#define EXTERN
[/Quote]

学习了。
图灵狗 2012-10-11
  • 打赏
  • 举报
回复
有用啊,比如:
#define EXTERN extern
//#define EXTERN
didijiji 2012-10-11
  • 打赏
  • 举报
回复
谢谢,我试了下:

#include "stdafx.h"
#define M "abcd"
#define N abcd

int _tmain(int argc, _TCHAR* argv[])
{
char *N = "fdjk";

printf("%s\n\n", M);
printf("N = %s\n", abcd);

system("pause");
return 0;
}


[Quote=引用 2 楼 的回复:]

http://c.kehou8.com/zhuanti/580.html可以的
[/Quote]
newtee 2012-10-11
  • 打赏
  • 举报
回复
armsword 2012-10-11
  • 打赏
  • 举报
回复
这样是错误的吧。

宏定义也不是说后面东西随便写,不能把字符串的两个""拆开

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧