c++ - 在 C++ 中定义二进制宏

标签 c++ c-preprocessor

谁能解释为什么会出现以下错误:

    #define bla "\xA"
    char a [2] = {0};
    memcpy (a,bla,1); // a[0] = 0x0a <- Correct
    //a[1] = bla;     // '=' : cannot convert from 'const char [2]' to 'char'

谢谢,

马币

最佳答案

类型不同:a[1] 是一个字符,"\xA"是一个字符数组。

在 C++ 和 C 中,任何用双引号括起来的东西(包括什么都没有)都是 char 数组。

关于c++ - 在 C++ 中定义二进制宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1167622/

相关文章:

javascript - 使用指针将 C++ 转换为 JavaScript( Node )*

c++ - 结构消耗太多内存

c++ - 为什么我的代码不返回原始消息?

c - 使用宏内联脚本

c++ - 调用不带括号的类似函数的宏?

C++ ROT-13 给出了我没想到的结果

c++ - 我什么时候应该为我的项目创建一个存储库?

c++ - 是否可以在编译时将 gcc 编译标志检测为宏?

c++ - 具有不同继承的同一类的版本

c - 故意编译失败 - 使用正在进行的项目的源代码