怎么用宏定义将两个字符串连接成一个字符串

时间:2023-01-07 15:10:15
例如
#define tm "Time:"
#define a  __TIME__
我想把上面两个宏在宏定义里面连接成一个字符串怎么连?

14 个解决方案

#1


#define timestr tm##a

#2


#define _TIME tm a

#3


#define tm "Time:"
#define a  __TIME__
#define A(x) g(x)
#define g(x) tm#x


A(a)就是结果了。

#4


1楼正解。
##就搞定

#5


[align=center]



#define tm "Time:"
#define a  __TIME__

#define A(x) a
#define B(y) tm
#define f(x,y) B(y)##A(x)

f(a,tm)


照猫画虎 
[/align]

#6


#define tm "Time:" 
#define a  __TIME__ 
#define A(x) g(x) 
#define g(x) tm#x 

#7


汗 !多画了

#define tm "Time:"
#define a  __TIME__

#define A(x) a
#define B(y) tm
#define f B(y)##A(x)

f

#8


##就搞定

#9


#include <stdio.h>


#define tm "Time:" 
#define a  __TIME__ 
#define _f(x,y) x##y
#define f(x,y) _f(x,y)
#define _CON(x) #x
#define CON(x,y) _CON(f(x,y)) 
int main(void)
{
    puts(CON(tm,a));
    getchar();
    return 0;
}

#10


引用 9 楼 selooloo 的回复:
C/C++ code
#include <stdio.h>


#define tm "Time:" 
#define a  __TIME__ 
#define _f(x,y) x##y
#define f(x,y) _f(x,y)
#define _CON(x) #x
#define CON(x,y) _CON(f(x,y)) 
int main(void)
{
    puts(CON(t……


cv++ 2008下CON(tm,a)展开成了这样:“f("Time:","01:48:54")”,估计楼主想要的结果应该是"Time:01:48:54"。你的方法估计是不正确的

#11


顶一楼,##

#12


1,2楼都可,调一个你喜欢的

#13


估计都不行,编译通不过

#14


google宏的  ##

#1


#define timestr tm##a

#2


#define _TIME tm a

#3


#define tm "Time:"
#define a  __TIME__
#define A(x) g(x)
#define g(x) tm#x


A(a)就是结果了。

#4


1楼正解。
##就搞定

#5


[align=center]



#define tm "Time:"
#define a  __TIME__

#define A(x) a
#define B(y) tm
#define f(x,y) B(y)##A(x)

f(a,tm)


照猫画虎 
[/align]

#6


#define tm "Time:" 
#define a  __TIME__ 
#define A(x) g(x) 
#define g(x) tm#x 

#7


汗 !多画了

#define tm "Time:"
#define a  __TIME__

#define A(x) a
#define B(y) tm
#define f B(y)##A(x)

f

#8


##就搞定

#9


#include <stdio.h>


#define tm "Time:" 
#define a  __TIME__ 
#define _f(x,y) x##y
#define f(x,y) _f(x,y)
#define _CON(x) #x
#define CON(x,y) _CON(f(x,y)) 
int main(void)
{
    puts(CON(tm,a));
    getchar();
    return 0;
}

#10


引用 9 楼 selooloo 的回复:
C/C++ code
#include <stdio.h>


#define tm "Time:" 
#define a  __TIME__ 
#define _f(x,y) x##y
#define f(x,y) _f(x,y)
#define _CON(x) #x
#define CON(x,y) _CON(f(x,y)) 
int main(void)
{
    puts(CON(t……


cv++ 2008下CON(tm,a)展开成了这样:“f("Time:","01:48:54")”,估计楼主想要的结果应该是"Time:01:48:54"。你的方法估计是不正确的

#11


顶一楼,##

#12


1,2楼都可,调一个你喜欢的

#13


估计都不行,编译通不过

#14


google宏的  ##