类似于#NAME或## NAME。它们在C中意味着什么?我在海湾合作委员会的文件中看到他们有关宏#和##运算符在C中做什么?
1
A
回答
1
运营商##连接两个参数让他们之间没有空格..
#define printe(a,b) a ## b
printe(c,out) << "testing";
输出是:测试
和单#用于参数替换枝条字符串参数 像
#define st(x) #x
cout<<st(tesing); // equivalent to cout<<"testing";
和#也是一个预处理指令..
1
从描述维基百科页面的C preprocessor:
的##运算符连接两个标记成一个令牌,如在这个例子中:其他
#define DECLARE_STRUCT_TYPE(name) typedef struct name##_s name##_t
DECLARE_STRUCT_TYPE(g_object); // Outputs typedef struct g_object_s g_object_t;
#
的操作信号的指令,以C预处理器,例如:#include, #define, #undef, #error, #if, #ifdef, #ifndef, #else, #elif, #endif
1
以代码语句开头#
表示接下来是预处理器指令,应该由预处理器进行扩展。
0
'#'实际上不是运算符,它们是预处理指令,'##'仅用于函数宏定义。
已经有C许多预处理指令:
宏定义有:
#define
#undef
有条件的夹杂物,主要有:
#ifdef
#ifndef
#if
#endif
#else
#elif
用于行控制,有:
#line
对于错误,有:
#error
源文件包含,有:
#include
对于编译指令,有:
#pragma
对于更多信息,请阅读http://www.cplusplus.com/doc/tutorial/preprocessor/
相关问题
- 1. “| =”运算符在C#中做什么?
- 2. - >运算符在C中做什么?
- 3. 什么是“?”。运算符在C#中做什么?
- 4. //和||是什么?运算符在Perl中做什么?
- 5. +运算符在cout中做什么?
- 6. 运算符`。*`在matlab中做什么?
- 7. '/运算符在MATLAB中做什么?
- 8. 运算符| =在JavaScript中做什么?
- 9. ^运算符在Perl中做什么?
- 10. !==运算符在JavaScript中做什么?
- 11. | =运算符在Java中做什么?
- 12. ^=运算符在Perl中做什么?
- 13. - >运算符在Perl中做什么?
- 14. (+++)运算符在Text.ParserCombinators.ReadP(Haskell)中做什么
- 15. perl运算符“|| =”做什么?
- 16. 什么+运算符做CSS
- 17. '&='和'=&'运算符是做什么的?
- 18. 什么呢左移运算做在C++
- 19. 这个JavaScript运算符在做什么?
- 20. ++运算符在char上做了什么*
- 21. 这个运算符在这个代码中做什么&=? (c#)
- 22. 在C#中```运算符是做什么的?
- 23. 在提供的C#代码中,+ =运算符是做什么的?
- 24. “| =”运算符在C#中表示什么?
- 25. **运算符在C中表示什么?
- 26. “| =”运算符在C中表示什么?
- 27. C++ - 什么是运算符。*?
- 28. 这个':'运算符在下面的C++代码中做了什么?为什么?
- 29. C#中的/ =运算符是做什么的?
- 30. “+ =”运算符是做什么的?
单身#怎么样?这两个运算符是否仅用于宏? – OneZero
@ user1229490我更新了我的答案。是的,它们仅用于C和C++宏预处理器 –