エンジョイC016回目牛本追いつき学習(2020-07-12)

1
ほえほえ@スプシマン @hoehoe1234

エンジョイC 16回目(2020/7/12) 本日は諸般の事情により新規参加者のみとなりましたので牛本の追いつき学習をしました。最初はC以降からどんな言語があるか簡単に紹介しました。ある程度メジャーなものということでご了承ください。 pic.twitter.com/wrIBYmTSeQ

2020-07-13 03:02:33
拡大
ほえほえ@スプシマン @hoehoe1234

やはり異色を放つのはJavaScriptですね。C言語からC++、Java、C#, go、rustという静的、システム記述系の系譜でもないしPython、perl、rubyといったスクリプト系でもありません。まさに異彩を放っています。そういう意味ではVBAも同じでしょうか? pic.twitter.com/iES8NET2KI

2020-07-13 03:04:37
拡大
ほえほえ@スプシマン @hoehoe1234

ウエブサイトの表示に彩りを添える程度のおもちゃ言語だったLiveScriptがMSの妨害?にもめげず立派に変態進化をとげ、バックエンドからウエブサーバまでなんでもJSで組めるようになってしまいました。ほんとおどろきですね。ウエブサイトは他言語でつくるにしてももうJS抜きでは考えられませんね。

2020-07-13 03:06:27
ほえほえ@スプシマン @hoehoe1234

どんな言語をやるかは、もし「作りたいアプリ」があるなら簡単でそれに最も適したもの。特になければ書籍がたくさんあって筋のよい言語でいいでしょう。C、C++、Java、go、rustあたりは何を選んでもはずれはないでしょうし、PythonとRubyはどちらでもいいと思います。個人的にはgoを始めてみたいです。

2020-07-13 03:07:50
ほえほえ@スプシマン @hoehoe1234

牛本をすすめます。コメントの書き方ですね。C++から逆輸入された//コメントいいですね。いまはIDEがあるので入れ子のコメントなども間違っているか正しいかすぐにわかるのであまり気にする必要はないですね。関数ヘッダについて説明などもしました。 pic.twitter.com/FNfzlPUOq9

2020-07-13 03:09:34
拡大
ほえほえ@スプシマン @hoehoe1234

Unix系でreturn n;としたときにnの範囲がどうなるかをためしてみました。1~255、256、~512~32768と試してどういう値が変えてくるかためしました。マイナス値はNGですね。正の整数は下位8ビットの値が返ってきます。 pic.twitter.com/M6t2UY4XId

2020-07-13 03:11:24
拡大
ほえほえ@スプシマン @hoehoe1234

通常はそんなに多くの数を返す必要はなくて0(正常終了)、1~9(異常終了)ぐらいでいいのではないでしょうか。このあたりはUnixの本を読んだりネットで検索するといろいろ経緯と理由が書いてありますね。

2020-07-13 03:12:46
ほえほえ@スプシマン @hoehoe1234

C言語の記法は結構自由です。わかりにくいところもありますが結局は、後置演算子、前置演算子の順に結合するとおぼえておけば結構楽です。あとはだいたい算数の結合順位と同じです。やはこしいのは*++p->nのような複合時に後置演算子から先に結合とわかればよいです。ただ++n、n++のように

2020-07-13 03:14:48
ほえほえ@スプシマン @hoehoe1234

結合の順位と評価値が別というのがあるのできをつけてください。(n++)は、式としてはnの値、副作用としてnの内容が+1されます。規格書にはいろいろかいてありますが式の値と副作用という観点を抑えておけばとりあえずはよいのではないでしょうか。

2020-07-13 03:16:30
ほえほえ@スプシマン @hoehoe1234

C言語はモジュールベースの言語であることを説明しました。モジュールとは関連のある変数と関数の集まりです。通常はファイル単位になります。モジュールを意識してファイルを分けるとモジュール変数を共有できるので便利ですね。この手法はVBAの標準モジュールの考え方とほぼ同じですね。 pic.twitter.com/WATzWcFiQt

2020-07-13 03:18:26
拡大
ほえほえ@スプシマン @hoehoe1234

図の右側にあるのは「変数がどこに格納されているか」の説明に使いました。静的データ(モジュール変数)はdataセグメント、コードはコードセグメント。そしてローカル変数はスタックに存在することを説明しました。このあたりはどうしても関数の動く仕組みの説明が必要になります。 pic.twitter.com/iBJNfLTA0q

2020-07-13 03:20:01
拡大