2

ここにサンプルコードがあります:

    unsigned char *m_fbytes;
    m_fbytes = (unsigned char*)malloc(m_iByteLen1FrameDecoded*sizeof(short));

    int err;
    err = fread(m_fbytes, sizeof(short), 960, fin);
    curr_read = err;
    for(int i=0;i<curr_read;i++)
    {
        opus_int32 s;
        s=m_fbytes[2*i+1]<<8|m_fbytes[2*i];
        s=((s&0xFFFF)^0x8000)-0x8000;
        m_in[i]=s;
    }

    int iLen = encode(m_enc, m_in, m_iByteLen1FrameDecoded, m_data, m_max_payload_bytes);

この行がわかりません:

err = fread(m_fbytes, sizeof(short), 960, fin);

このコードの作成者は、いくつかのバイト (別名 unsigned char) を読み取りますが、sizeof(short) を渡します。

彼らはなぜ「sizeof(short)」を使うのですか?

4

2 に答える 2