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};