c++ - 结构中的默认值(字符)

标签 c++ struct char assign

我想寻求帮助。 当我得到这个时:

struct MyStruct
{
    unsigned char myBytes[5];
    MyStruct()
    {
        myBytes[0] = 0x89;
        myBytes[1] =  0x50;
        myBytes[2] =  0x4E;
        myBytes[3] =  0x47;
        myBytes[4] =  0x0D;
    }        
};

如何让它变得简单? 喜欢 myBytes = {0x89, 0x50, 0x4E, 0x47, 0x0D};

最佳答案

在 C++11 中,您可以执行以下任一操作:

struct MyStruct
{
    unsigned char myBytes[5] = {0x89, 0x50, 0x4E, 0x47, 0x0D};     
};

// or...

struct MyStruct
{
    unsigned char myBytes[5];
    MyStruct() : myBytes{0x89, 0x50, 0x4E, 0x47, 0x0D}
    { }        
};

否则,您已经找到了最好的方法。

关于c++ - 结构中的默认值(字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20838751/

相关文章:

object - Julia 中的内部构造函数

c - 结构数组 - C 错误值

c - 打印字符 *

c++ - 错误: cannot convert ‘std::string {aka std::basic_string<char>}’ to ‘char*’ in initialization

c++ - 为什么我不能重新分配以前在 C++ 堆栈上分配的变量( 'Frame' 的复制赋值运算符被隐式删除)?

c++ - 交换函数 - 指针 - 混淆

c++ - undefined reference to vtable 错误是由现代 g++ 编译器解决的吗?

C++ 子结构与父结构具有不同的变量名称

java - 如何将最初的 Latin-1 char[] 从 SAX 解析器转换为正确的 UTF-8 字符串?

c++ - boost 每个问题