現在、intから数字を抽出するためのコードがいくつかありますが、これをsnprintfのないプラットフォームに変換する必要があり、バッファオーバーランが心配です。私は自分のポータブルな(そして最適化された)snprintfを書き始めましたが、誰かがもっと良いアイデアを持っている場合に備えて、ここで尋ねるように言われました。
int extract_op(int instruction)
{
char buffer[OP_LEN+1];
snprintf(buffer, sizeof(buffer), "%0*u", OP_LEN, instruction);
return (buffer[1] - 48) * 10 + buffer[0] - 48;
}
速度が非常に重要であるため、C文字列を使用しています。