char str[33] = "";
snprintf(str, sizeof str, "%s%s%s%s", preg->opbits,preg->rsbits,preg->rtbits,preg->ibits);
char *instruction = &str[0]
我正在尝试从 32 位长的 MIPS 汇编指令的字符串表示的不同元素构建二进制字符串,其中 opbits 是 6 位操作码,rsbits 是第一个源寄存器的 5 位数,rtbits 是立即数 (i) 类型指令的目标寄存器的 5 位编号,而 ibits 表示 16 位整数值。我希望将它们连接成一个字符数组,然后将一个指针分配给该数组的第一个元素,该指针可以传递给一个已经定义的函数,将一个写为字符串的数字转换为一个字符串(在指定的基数中,该基数也传递给 strtoint 函数) 为整数值。
我的主要问题是,我是否需要考虑要连接的每个字符串末尾的空字节,其次,这行得通吗?