比较宏定义中的字符串

标签 c string macros

我可以在宏中执行 strcmp 吗? 例如这样的事情:

#define TEST_WORD (word2,str,result){\
    if(!strcmp(word2,str)){\
        return result;\
    }\
}

然后像这样使用它:

TEST_WORD(word2,"add", FORMATION_ADD);

我基本上想将 word2 与几个字符串进行比较,但 MACRO 方式似乎不起作用。 (word2当然是一个char*)

最佳答案

是的。你可以。但你应该注意空格...

#define TEST_WORD(word2,str,result) {\
    if(!strcmp(word2,str)){\
        return result;\
    }\
}

关于比较宏定义中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20385788/

相关文章:

c - 你如何截断而不是四舍五入? C

loops - 使用 lisp 循环宏进行高级循环

c++ - __COUNTER__ 宏问题。不显示值

c - fread() 读取过多数据

c - 如果类型是指针,则函数返回值的范围

c++ - 如何在 iOS 中添加带有 PCM 数据/缓冲区的可播放(例如 wav、wmv) header ?

ruby - 用不同的字符串替换 Ruby 逗号

algorithm - 子串算法

c - 每行打印一个字

c - 有什么办法可以拆分 gcc 宏参数吗?