我刚开始用C语言,希望能得到一些帮助。
我有一个结构如下(在功能等对我的问题不重要):
void init_itype (uint32_t bits,mips_itype_t *itype) {
itype->in = bits;
itype->op = IN(bits,OP_L,OP_SZ);
itype->opbits = bitstostr(itype->op,OP_SZ,0);
itype->rs = IN(bits,RS_L,R_SZ);
itype->rsbits = bitstostr(itype->rs,R_SZ,0);
itype->rt = IN(bits,RT_L,R_SZ);
itype->rtbits = bitstostr(itype->rt,R_SZ,0);
itype->immediate = IN(bits,I_L,I_SZ);
itype->ibits = bitstostr(itype->immediate,I_SZ,0);
return;
}
我修改了结构如下:
printf("Instruction (in binary notation) is : %s%s%s%s\n",
itype->opbits = "100011",itype->rsbits,itype->rtbits,itype->ibits);
我打印了整个字符串,只是为了确保它的行为是应该的。
我想知道的是,如何将opbits、rsbits、rtbits和ibits存储在一个数组中,以便将新的二进制模式作为字符串使用?
最佳答案
你可能在寻找snprintf
。就像printf,只有它“打印”成一个字符串。
char str[LENGTH];
snprintf(str, sizeof str, "%s%s%s%s", ...);