C中的’#’运算符是什么?
C中有’#’运算符吗?
如果是,那么在代码中
enum {ALPS, ANDES, HIMALYAS};
以下将返回什么?
#ALPS
C语言没有#
运算符,但预处理器(处理#include
和#define
的程序)有。 预处理器简单使#ALPS
成为字符串"ALPS"
。
但是,此“stringify”运算符只能在#define
预处理器指令中使用。 例如:
#define MAKE_STRING_OF_IDENTIFIER(x) #x char alps[] = MAKE_STRING_OF_IDENTIFIER(ALPS);
预处理器将以上示例转换为以下示例:
char alps[] = "ALPS";
C中没有#
运算符。 #
前缀用于描述预处理程序指令。
请参阅: http : //en.wikipedia.org/wiki/C_preprocessor
No. #
用于预处理程序指令,例如#include
和#define
。 它也可以在宏定义中使用,以防止宏扩展。
C中的尖锐符号是预处理程序指令的前缀。
它不是运营商……
“#”不是C中的运算符。但是预处理器(在编译器之前运行)提供_包含头文件的能力: enter code here
#include _宏扩展: **#define foo(x) bar x**
_条件编译:
**#if DLEVEL > 5 #define STACK 200 #else #define STACK 50 #endif #endif**
在enum {ALPS, ANDES, HIMALYAS};
什么都不会返回ALPS。 你刚刚定义了一个强整数类型(ALPS = 0, ANDES = 1 and HIMALYAS = 2)
,但是这个枚举的名字没有这样的枚举:enum mountain {ALPS,ANDES,HIMALYAS};