微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C中的##运算符

##在C做什么?

例:

typedef struct
{
    unsigned int bit0:1;
    unsigned int bit1:1;
    unsigned int bit2:1;
    unsigned int bit3:1;
    unsigned int bit4:1;
    unsigned int bit5:1;
    unsigned int bit6:1;
    unsigned int bit7:1;
} _io_reg;

#define REGISTER_BIT(rg,bt) ((volatile _io_reg*)&rg)->bit##bt

(除了##部分,我知道这一切都是如此)

解决方法

它是 string concatenation,作为预处理器宏的一部分.

(在这种情况下,“字符串”是指当然是一个预处理器令牌,或者是一个“源代码字符串”,而不是一个C字符串.)

原文地址:https://www.jb51.cc/c/115380.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐