MST

星途 面试题库

面试题:C语言##运算符连接标记的基础应用

请简述在C语言中##运算符连接标记的作用,并且编写一段代码示例,展示使用##运算符连接两个宏参数形成新的标识符。
26.5万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试

1. ##运算符连接标记的作用

在C语言中,##运算符被称为连接运算符(token pasting operator),它的作用是将两个预处理标记(tokens)连接成一个预处理标记。在宏定义中使用##运算符时,它会在预处理阶段将宏参数与其他标识符或者宏参数自身连接在一起,形成一个新的标识符。这样可以实现根据不同的参数生成不同的标识符,增加代码的灵活性和可复用性。

2. 代码示例

#include <stdio.h>

// 定义一个宏,使用##连接两个参数形成新的标识符
#define CONCAT(a, b) a##b

int main() {
    int CONCAT(var, 1) = 10; // 展开后为 int var1 = 10;
    printf("var1的值为: %d\n", CONCAT(var, 1));
    return 0;
}

在上述代码中,CONCAT宏使用##将参数ab连接在一起。在main函数中,CONCAT(var, 1)被预处理器展开为var1,从而定义了一个名为var1的整型变量并赋值为10,最后输出该变量的值。