私のコードは、簡単に混乱するさまざまなものを表すスカラー型へのポインターを渡します。コンパイラがこれを助けてくれると思いました。
テストプログラムは次のとおりです。
typedef int type_a;
typedef int type_b;
type_a do_something_with_a(type_a* pa)
{
return *pa + 3;
}
int main(void)
{
type_b b = 0;
do_something_with_a(&b); /* This is a bug. */
return 0;
}
Asでのみ処理を行うことになっている関数にBを渡していますが、gccは警告をスローしません。
$ gcc -Wall typesafe2.c
$
同等のコードを書くことができるエレガントな方法はありますが、そのようなひどい間違いをしたときにコンパイラーにエラーをスローさせますか?