10得票4回答
C宏令牌串联涉及变量-是否可能?

我正在尝试定义一个宏来生成包含变量的令牌名称。 基本上,我正在尝试这样做: #define GLUER(x,y,z) x##y##z #define PxDIR(x) GLUER(P,x,DIR) int main() { int port; port = 2; PxDIR(...

9得票2回答
使用Unicode字符串字面值的字符串化宏

我正在使用这个预处理宏来“字符串化”并从定义解析函数中轻松返回: #define STRINGIFY_RETURN(x) case x: return #x "" 在MBSC环境中,使用普通字符串文字可以像魔术一样正常工作。例如: #define MY_DEFINE_1 1 #...

8得票2回答
C预处理器:字符串化宏和标识宏

我想知道这段代码输出的原因。我无法得出答案。 #define f(a,b) a##b #define g(a) #a #define h(a) g(a) void main() { printf("%s %s",h(f(1,2)),g(f(1,2))); } PS: 输出结果是12...

8得票4回答
C/C++宏展开为参数,参数作为字符串。

我有很多变量的名称与工程规范文档中的元素相同,因此名称的字符串版本也很有用。 我经常使用这样的宏: #define MACRO(a) a, #a 常规用法如下: void someFunction(int a, const char *name); someFunction(MAC...

8得票3回答
使用GNU gfortran的字符串宏

如何使用GNU Gfortran将预处理器宏字符串化?我想向GNU Gfortran传递一个宏定义,然后在代码中将其用作字符串。 实际上,我想做到这一点: program test implicit none character (len=:), allocatable :: astrin...

7得票3回答
如何使用C预处理器将拼接的字符串转换为宽字节字符?

我正在处理一个项目,其中有许多由连接(数字等)形成的常量字符串。 例如,我有一个名为“LOCATION”的宏,将__FILE__和__LINE__格式化为一个字符串,以便在打印消息或错误时知道自己在代码中的位置: #define _STR(x) # x #define STR(x) ...

7得票2回答
如何使用cpp将宏转换为字符串?

GNU的cpp允许您将宏参数转换为字符串,像这样: #define STR(x) #x 然后,STR(hi)会被替换成"hi" 但是如何将一个宏(而不是宏参数)转换为字符串? 比如我有一个名为CONSTANT的宏,其具有某个值: #define CONSTANT 42 这种写法...

7得票7回答
使用%s格式化时,#是什么意思?

我看到了一个关于断言的例子,想知道这个 # 是什么意思: #define ASSERT( x ) if ( !( x ) ) { \ int *p = NULL; \ DBGPRINTF("Assert failed: [%s]\r\n Halting.", #x); \ ...

7得票5回答
预处理器为什么会产生空格?

我想使用预处理器来注释一行代码: #define open /##* #define close */ main() { open commented line close } 当我执行$gcc -E filename.c时,我期望的是: /* commented ...

7得票2回答
获取JSTree的JSON数据及其元数据

我们正在使用jstree作为导航菜单编辑器,并已将元数据分配给树的节点,如下所示: var data = currentNode.data("jstree"); data.title = textBoxTitle.val(); data.linkType = textBoxLink.val(...