![見出し画像](https://assets.st-note.com/production/uploads/images/99482028/rectangle_large_type_2_68ae6cfa9bc8f6967e550ad0bf73dce9.png?width=1200)
C言語ー関数の最終行に return を置く
コーディングの時の注意点を備忘のために記事にしました。
注意点: 戻り値のある関数の最終行には必ず return を配置する。
例えば、次のコードの L.5 のように関数の最終行に return を配置します。
![](https://assets.st-note.com/img/1677978191238-HeBx4aibKr.png)
なぜならば、戻り値のある関数を call して return を通らなかった場合、その関数は何を返すか分からないからです。
それに対して、関数内部に if-else 文を配置してそれぞれの条件分岐内にて return を配置するような、次のようなコードはあまり好ましくありません。
![](https://assets.st-note.com/img/1677978259530-Dos49WfBfG.png)
この場合、実装した本人は処理がどこを通って関数を抜けていくのかよく分かっているので、上手く管理できるかもしれません。しかし、コードを知らない他人がそこに修正を加えるとき、return を通らずに関数の最終行で抜けてしまうよう修正してしまう可能性があります。
例えば、次のコードの L.2 ように if 文で括ってしまうと、i = 0 のときは return を通らずに関数を抜けてしまいます。
![](https://assets.st-note.com/img/1677982854370-fBFrUNvZaO.png)
また、静的解析ツールにて指摘対象となり、修正することになる可能性もあります。なので、fig2. のようなコーディングは避けるべきです。
納期に追われていた私はやってしまいましたが (汗)
実装当初にはバグは無いので、急いでいたりすると見過ごしがちですが、どんな時でも保守性の高い実装ができるようになりたいものですね。
ここまでお付き合いいただき、ありがとうございました。