This account is not set to public on notestock.
This account is not set to public on notestock.
This account is not set to public on notestock.
C言語での"return"は他動詞ではなく自動詞 - 何とは言わない天然水飲みたさ
https://blog.cardina1.red/2016/07/08/return-statement-of-c/
C 言語は K&R 出版前の ancient Unix 実装に使われた C ですら関数の宣言には戻り値の型があって return は return(val); 的な記法で値を明示的に返す用法だったので、C の return は ret 命令の糖衣構文的なものであるというのは成り立たないんではないか。
無論 void func() が return; で戻るだけの関数も当時からあるけど
論理回路を親だと思って育ったオタクなので、手続き型やその派生のことを考えるときすーぐアセンブリとか回路レベルのアナロジーまで落としてしまうんだよな、良くない癖だがなかなか治らない
オレンジも戻り値って言ってる気がするけど、
モダンなPascalの場合はreturn valueじゃなくresultって言葉が使われてたりもするし、Cももしresultって言葉を使ってたら日本語も「結果」になってシンプルだった気がしなくもない><(?)
C では result をポインタ引数への代入で返したりするのでその語法はややこしい
ちなみに return val; ではなく return(val); になってるのは今でもたまにやる人はいるが基本的には (val); が expression として解釈された結果の val を return に渡すので結論としては return val; で解釈されることになり関数っぽく見せ掛ける意味はあんまりないんだけど、pre K&R C の実装の return は関数として実装されていないかどうかは覚えていない。コンパイラのコード読めばわかる話だがアレの当時のコンパイラのコード読むのたいへんだからな……