Most Useful

もっとも便利

受賞者:Dave Burton

引用元:https://www.ioccc.org/2015/burton/prog.c

審査員・作者による説明:https://www.ioccc.org/2015/burton/hint.html

動作

レジスタのある電卓。

$ gcc -o prog prog.c

$ ./prog "a=1; b=0xf; a+b"
16      0x00000010

出力は10進数と16進数で行われる。

解説

サポートしている演算子や優先順位はcalc.manを参照のこと。

コード形状は”Calc”。 数字や文字列リテラルを(極力)使わないという制約で書かれている。 また、制御構造はforreturnのみとのこと。 コードサイズはiocccsize -iで2015になるようにしている。 波括弧はメソッド定義でしか使わない。

メモリ確保をせずに動いているとのこと。 どうも、(char*)argv-65536argvあたりのアドレスを勝手に使っているように見える。 valgrind上で実行したらSEGVする。将来動かなくなるかもしれない。