433得票12回答
如何将jQuery对象转换为字符串?

如何将jQuery对象转换为字符串?

118得票4回答
宏定义中的Pragma

有没有办法在宏中嵌入包含其他语句的pragma语句? 我想要实现如下功能:#define DEFINE_DELETE_OBJECT(type) \ void delete_ ## type_(int handle); ...

112得票3回答
使用C预处理器将整数连接到字符串

我正在尝试弄清楚如何使用C预处理器将#define的整数与#define的字符串连接起来。我的编译器是CentOS 5上的GCC 4.1。解决方案也应该适用于MinGW。 我想将版本号附加到一个字符串上,但唯一能让它工作的方法是复制定义为字符串的版本号。我找到的最接近的方法是引用宏参数的方法...

93得票2回答
双重字符串化技巧究竟是如何工作的?

至少有一些C预处理器允许您通过将其传递到另一个函数宏中来字符串化宏的值,而不是它的名称,以便在该宏中进行字符串化: #define STR1(x) #x #define STR2(x) STR1(x) #define THE_ANSWER 42 #define THE_ANSWER_STR ...

90得票13回答
## 预处理器运算符的应用及需要考虑的注意事项是什么?

正如我在之前的许多问题中提到的那样,我正在学习《C程序设计语言》并且现在正在学习预处理器部分。其中一个更有趣的东西——这是我以前尝试学习C时从未知道过的——就是 ## 预处理器运算符。根据K&R的描述: 预处理器运算符 ## 提供了一种在宏扩展期间连接实际参数的方式。如果替换文...

84得票6回答
将预处理器标记转换为字符串

我正在寻找一种将预处理器标记转换为字符串的方法。具体而言,我有一个这样的标记:#define MAX_LEN 16 我想使用它来防止缓冲区溢出:char val[MAX_LEN+1]; // room for \0 sscanf(buf, "%"MAX_LEN"s", val); 我愿意尝试其...

61得票2回答
字符串化 - 它是如何工作的?

我知道: #define foo 4 #define str(s) #s str(foo) 会输出 "foo",因为文本展开时首先执行字符串化操作。 #define xstr(s) str(s) #define str(s) #s #define foo 4 使用xstr...

59得票4回答
C宏中的#x表示什么意思?

例如,我有一个宏:#define PRINT(int) printf(#int "%d\n",int) 我有点知道结果。但为什么#int代表整个事情?我有点忘了这个细节。能否有人友好地给我一个提示?谢谢!

58得票3回答
宏中的#和##是什么意思?

#include <stdio.h> #define f(a,b) a##b #define g(a) #a #define h(a) g(a) int main() { printf("%s\n",h(f(1,2))); printf...

52得票2回答
C预处理器,将宏的结果转换为字符串

我想将宏展开的结果转换为字符串。 我尝试了以下代码:#define QUOTE(str) #str #define TEST thisisatest #define TESTE QUOTE(TEST) TESTE会被扩展为"TEST",然而我想要的是"thisisatest"。我知道这是预处...