用C++定义二进制宏

Rom*_*n M 0 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'
Run Code Online (Sandbox Code Playgroud)

谢谢,

R M

小智 5

类型不同:a [1]是char,"\ xA"是char数组.

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