わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

演習初回

一昨日,これまでC復習学習案 - わさっき問題作り - わさっきで書いた件の初回授業を実施しました.
大小いろいろトラブルもありましたが,一番興味深かったのは,関数呼び出しに絡んだエラーが,リンクエラーではなく「incompatible types in assignment」だったこと.
差し当たりの対処を指示し,演習室を巡回しながら,そのエラーになる理由を考えました.
構造体を戻り値とする関数を呼び出し,変数に代入するような処理について,定義する関数名と呼び出す関数名が合っていないというものでした.
そしてこれは,呼び出す関数名がなければ,「int 呼び出す関数名();」という宣言がなされているものとして呼び出しを試みるけれども,代入のときに左辺は構造体型,右辺はint型ということで,互換性のない型,としてエラーになるというわけですね.
関数名に限らず,間違えやすい識別子を2回以上書くときは,M-/ の動的略語展開を使えばミスが減ります*1
学生はこの世界に生まれ立ったばかりで,まばゆいこの世界をどう進めばいいか分からず,あるがままの姿で動いているようなものです.よちよち歩きをし,走り回れるようになるのを見届けながら,時折ちょっとずつ,効率よく快適に操作できるための小技*2を紹介していきたいものです.

*1:最初にスペルミスをしていたら,動的略語展開でもそのスペルミスしたのが出てくるのは恥ずかしいのですが.

*2:続・CUIスキル向上 - わさっき