再生できない場合、ダウンロードは🎵こちら
C言語について
知っていることを簡単に書いてみます。
個人的な思い込み、知識不足はあるのでご了承ください。
c言語というときに一般的には
Unix系(Linux系?)とVC++系
に大きく分かれます
Unix系の場合は
主に制御系、組み込みなどと称される業務で使用されることが多いです。
またはネットワーク系でサーバマシンとしてLinuxが採用されたりすると
出番があるかもしれません。
VC++系はサーバ・クライアントともにWindows系に限られます。
(最近は例外もあるかもしれません、携帯などの開発については未知なもので)
ほかにもApple系的なとこでもC++はあったように思いますが
私の守備範囲を超えます。
どちらで作業をするのかによって知るべきことは異なります。
Unix系であれば、画面の関係ないところで
PCメモリ内での闘いや、他デバイス(他機器)とのやりとり
などがメインとなるでしょう。
VC++系では上記に加えて
画面関連の表示・管理が必要となる場合があります。
VC++での画面管理はVB、C#にくらべて煩雑で
はっきりいってめんどくさいです。
その業務での既存のソースがあれば
なるだけそのソースを参考にして
真似をしながら、知識を吸収するしかないでしょう。
UNIX系でも既存のソースからの情報が大切です。
その中の動きがわからる必要があります。
もし開発そのものについてかなりベテランであるのなら、
言語の特色として、メモリの管理(いわゆるポインタの使いかた)
が重要なことがあげられます。
これを間違えると、とんでもないことができてしまうので
必須な知識です。
ポインタのポインタのポインタなんてのも
あるやらないやら
(わけわかんないっす)
まずはその職場での開発環境になれることが
一番大切です。
基本的なソース管理ツールの使い方に始まり、
ソース修正時の職場でのルール、
コンパイル(ビルド)時、どこに実行用ファイルができるか
それをどこに配置して動かすのか、
その後の動作確認はどうするのか、
テスト仕様書の作成方法、テスト基準など
一通りの業務を終えてリリースしてからが
本当の仕事です。
と
誰に向けて書いてるのか
よくわからなくなってきましたが
世に出回っている書籍よりは
ネットの知識のほうが
手っ取り早く仕事に役立つとともに
C言語学習サイトはいくらでもあるので
そちらを勉強するのが基本を学ぶにはよいでしょう。
(普通にC言語、はじめに、とかでぐぐればいいんではないでしょうか)
実際にはそのレベルの知識は実務には全くといっていいほど
役にたちません。
業務ソースが一番の勉強材料であると
私の経験からは間違いなくいえます。
これを読めばOK的なものは
私には見つけられませんでした。
それでも、C言語関連の本を読んだり
気にしながら本屋さんを歩いたりと
気にかけていたことを思い出します。
勉強しようとしていると
意外なところでそれが使えたりすることもあります。
(前言と矛盾するようですが)
できればC言語を好きになって、
こだわりを持って、開発に臨めればベストでしょう。
以上、なんとなく思うところを書いてみました。
この中で不明なところ、気になったところを
中心に学んでいくことが多少でもお手伝いになっていれば
幸いです。
ついでに:
C言語で一番好きなところは
いくらでもさかのぼって
定義されているところにたどりつけるところです。
メモリは自分で確保して、自分で廃棄しなければなりませんが
ガベージコレクションなどと称して、
都合のいい時間に適当に消されるのは我慢できません。
ただ、C言語でもMain関数から処理が始まるとか、
プロセスを作るには自分を複製してその中身を変えないといけないとか
どうしても決まりとして覚えないといけないことがあるのは
どうにかならないかと思いますが
ほかにどうすればいいのかといわれるとどうにもできないので
まあ、そんなもんでしょう。
なにかを生むときに、自分の複製を作って、中身を新しくするなんていうのは
人間でも同じだなあ、なんて思ったりもします。