以下のような2つの関数があるとします。
unsigned char PlusTwo(unsigned char value)
{
return (value + 2);
}
unsigned char PlusTwoUsingPtr(unsigned char *value)
{
return (*value + 2);
}
開発中に最初の関数をテストしたい場合は、問題ありません。必要なのはこれだけです。
PlusTwo(8);
コンパイラは自動的に定数をメモリ内のどこかに配置します。ただし、2番目の関数をテストするには、さらに複雑になります。最初に変数を宣言し、次に関数に変数のアドレスを渡す必要があります。
unsigned char eight = 8;
PlusTwoUsingPtr(&eight);
これはそれほど時間のかかることではありませんが、面倒です(特に、関数ブロックの先頭で変数を宣言する必要があるC89 / ANSIでは)。この関数を1行のコードでテストし、コンパイラーに定数を宣言して、ポイントする場所に配置させるトリックはありますか?