8進数のprintf機能を理解しようとしています。コードを次のように記述した場合:
int main()
{
char *s = "\123";
printf("%s",s);
}
SのASCIIは8進数で123であるため、実際には正しいSとして出力されます。しかし、私の質問は、コンパイラが8進数から変換する数列をどのように識別するかということです。例えば:
char *s = "\123456"
S456として出力します
8進数変換には最大3つの数値が必要ですか?
8進数を指定できる最大制限はありますか(最大3桁の8進数は777になります)
最大255個のASCII文字(8進数の377)があるため、777を印刷しようとすると、典型的なASCII文字が出力されます。これは、この番号にASCII文字が割り当てられていないためと考えられます。また、この機能はコンパイラ/ OSに依存していますか?
ここでの最初の質問以来、かなり明確になっていることを願っています:-)