-Wconversion
警告をオンにしてデスクトップで GCC を使用すると、数値リテラルを使用した数学演算中に sshort
が s に昇格することが明らかになります。int
unsigned short i = 10; // Obviously truncates to short immediately
unsigned short j = 30; // Same here
i = j + 2; // Warnings imply j gets promoted to int here, demands cast
「ショートの方が常に速い」というルールがスローされているARMターゲットでは、ほとんどすべての数学演算(特にリテラルを含む)中にint
、演算のために s に昇格されるというのは本当ですか?
もしそうなら、 s を使用する理由はshort
、コンパイラが境界が適切かどうかをチェックするのに役立つ以外にありますか? 私は大量のショート パンツを扱っているわけではないので、保管スペースは問題にならないようです (そうですか?)。
注意。これはオーディオ処理であるため、最適化を行っているわけではなく、これについて考える必要があります。