RL78CS+ forCCでソフトを作っています。例えば、関数 void xxfunc(uint32_t, uint32_t) があったとします。メインで、 uint16_t aa; uint16_t bb; aa = 1000; bb = 6000; xxfunc(aa, bb);でコンパイルします。引数の型が合わないのでワーニングが出ると思いましたが出ませんでいた。暗黙の型変換だと思います。このような場合でもワーニングを出すことはできますか?
> 要は、関数の引数がuit32_tなのでuint16_tのaaを代入する場合、 > 「型があってませんよ」という警告を出してほしいという意味です。
C とは異なり引数型の違いをエラーとしてくれる言語は存在するのでそちらの選択を検討されるのもひとつの手ではないかと思います。
Swift Rust Ada
本末転倒な感じがします。 ユルイのがCのメリットです。コンパイラーは適当に解釈してとにかく実行コードを作る、そして、それぞれのルールで人や静的解析ツールによりチェックする、が基本的な考えと思います。私のようなミニコンやマッキントッシュからスタートしたPASCALを好むプログラマはCユーザーから「ガチガチ」とバカにしたされたものです。 現状でPASCALは見ないですが、まだまだ、Adaなどは多く使用されているようです。Fujitaさんが示されてますが、マイコンの選択も含めて言語も再検討するのが良いように思えます。RXやRL78に関してはチェックしてませんがSHマイコン向けのAdaはGHSから販売されてました。