社区
C语言
帖子详情
问一个关于 # 和 ## 的问题
zhangyiheng
2008-09-23 11:27:56
#define RTP_NAME "rtp"
#define DEV_NAME(prefix, minor) \
(prefix # minor)
当我输入
int minor = 0;
char *rtp0 = DEV_NAME(RTP_NAME, minor)
printf("rtp 0 = %s\n", rtp0);
后结果变成 rtp 0 = rtpminor
我想要的结果是 rtp 0 = rtp0
请问应该怎么样做?
...全文
100
9
打赏
收藏
问一个关于 # 和 ## 的问题
#define RTP_NAME "rtp" #define DEV_NAME(prefix, minor) \ (prefix # minor) 当我输入 int minor = 0; char *rtp0 = DEV_NAME(RTP_NAME, minor) printf("rtp 0 = %s\n", rtp0); 后结果变成 rtp 0 = rtpminor 我想要的结果是 rtp 0 = rtp0 请问应该怎么样做?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
devil_zuiai
2008-09-24
打赏
举报
回复
好像用宏定义达不到楼主想要的要求啊。
bayuan0414
2008-09-24
打赏
举报
回复
至于#arg这种结构被预处理器翻译成"arg"。
如:
#define PRINT(FORMAT,VALUE) \
printf("The value of " #VALUE \
" is " FORMAT "\n",VALUE)
使用这个宏,如
PRINT("%d",x+3);
则输出
The value of x+3 is 25
bayuan0414
2008-09-24
打赏
举报
回复
应该这样表述
##把位于它两边的符号连接成一个符号。但这种连接必须产生一个合法的标识符
bayuan0414
2008-09-24
打赏
举报
回复
##是连接左右两边的字符串成为一个字符串
once_and_again
2008-09-24
打赏
举报
回复
# 是拼接吗?
catamout
2008-09-24
打赏
举报
回复
不会啊 我用VC++ 可以得到你想要的结果啊
#include <stdio.h>
#define RTP_NAME "rtp"
#define DEV_NAME(prefix,minor) prefix#minor
void main()
{
// char minor = "0";
int minor = 0;
char *rtp0 = DEV_NAME(RTP_NAME,0);
printf("rtp0 = %s\n",rtp0);
}
不过第一次我也是得到 rtp0 = rtpminor;
但是后来有可以了 你在试试
我有个例子是从书上看到的 可能对你有用
#define stringer(n) printf(#n"\n")
则 stringer(text) <==> printf("text""\n") <==>printf("text\n")
”#“字符化或数字标记操作符,在宏定义中,把宏参数转化成字符常数,这个操作符只能用在有特定参数或者、参数列表的宏中
zhangyiheng
2008-09-23
打赏
举报
回复
写个函数返回字符串更麻烦, 如果在栈上分配么, 就会出现访问越界; 如果在堆上分配么, 就会有内存泄露。写驱动程序又不能用C++来做
青葱岁月不可追
2008-09-23
打赏
举报
回复
[Quote=引用 1 楼 lbh2001 的回复:]
宏在预处理阶段执行,不能取得编译时变量的值
不知你这样做的意图
要实现的话,写个函数实现吧
[/Quote]
up
lbh2001
2008-09-23
打赏
举报
回复
宏在预处理阶段执行,不能取得编译时变量的值
不知你这样做的意图
要实现的话,写个函数实现吧
关于#IF #ELSE #ENDIF
NT中的一段代码 关于#IF #ELSE #ENDIF 的倒是可以理解,但是NET1是哪里冒出来的呢?帮助文档上说可以使用#DEFINE例子如下:// preprocessor_if.cs#define DEBUG#define VC_V7using System;public class MyClass { ...
ensp路由器注册_关于华为eNSP路由器(CLI)出现无限井号###的解决办法---超全!!!...
华为eNSP无限井号#解决办法前言:今天第一次上网课学习eNSP,结果就被####给弄懵了## 一,概述一直听宿舍里学网络的师兄说华为的eNSP模拟器是
一个
神奇的模拟器,多少次想砸电脑的心都有了,你不会知道什么时候会有...
C/C++ #include是个替换
写C程序也很多年,想起来一上刚工作时有同事
问
我关于
一个
c语言的
问
题
。近来又有
一个
相似的,我就写一写吧。 以下
一个
代码估计很多C程序员认为不对,有错,一定编译出错。但不要那么绝对,这只是没明白#include 做了...
你应当如何学习C++(以及编程)(rev#1)
你应当如何学习C++(以及编程)(rev#1) By 刘未鹏(pongba)C++的罗浮宫(http://blog.csdn.net/pongba) Javascript是世界上最受误解的语言,其实C++何尝不是。坊间流传的错误的C++学习方法一抓...原因主要有三个,一是C+
题解 | 剑指offer | #二叉树的下
一个
结点#
一面自我介绍2分钟面试官接着
问
我学校做的
一个
动态标定的项目,讲了大概十多分钟,中间
问
我sift surf,orb的。bg:末流9本,java后端,项目是spring轮子和铁路购票,下学期准备翘课找日常,同时准备找暑期实习,不...
C语言
69,373
社区成员
243,079
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章