c - 什么是 C 中的 '#' 运算符?

标签 c operators operator-keyword

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 - 什么是 C 中的 '#' 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7952903/

相关文章:

c - C中printf的标准定义是什么?

c - 分配作为参数传入的函数指针

c - 将数字分解为斐波那契数的程序

templates - Twig:否定包含运算符 IN

function - 使用百分号作为前缀运算符名称的一部分

ios - 在 Swift 中使用自定义运算符优于方法的优势

c++ - 使用许多对象重载加法运算符 C++

c - GTK:设置对话框的默认按钮

c++ - 如何使用Cin第一次启用输入流?

c - C语言中如何判断/运算符是否无余?