c - 如何将字符串作为参数传递给 C 宏

标签 c macros

我有一个字符串数组char version[][8] = {"new", "old", "latest", "oldest", "ancient"};

我有一个宏

#define FS(file, attr) \
        filesys(file, file_ ##attr## _ops) \

如何将字符串数组的 version 成员传递给 FS 宏?

最佳答案

你不能。宏是编译时间,编译器将无法按照您想要的方式拼接字符串。相反,请尝试使用 strcat(),只是不要忘记您需要跟踪字符串数组的大小。

关于c - 如何将字符串作为参数传递给 C 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56727168/

相关文章:

c - 读取 fscanf 上的空间

c - C 中多个嵌套结构的硬故障

emacs - 如何在 Elisp 中创建 DSL

c++ - QT宏Q_SLOTS后类访问限制

macros - 将循环重写为 mapcar

c - (Cygwin) 链接到自定义头文件的 C 程序在尝试执行时出现内存问题

malloc() 和 free() 的 C 动态内存问题

c - 我们如何定义用于识别给定系列中特定序列的规则?

c++ - 这样的宏有什么用?

macros - Scheme (Kawa) - 如何在另一个宏中强制展开宏