
このような感じで進んでいきますという概要の説明です。
C言語で使う変数を一気に解説します。
どうしても最初はprinfをおぼえなければならないのです。重要です。
関数とはなにかを理解できていますか? その1
プログラミングとは、関数を創って使うことです。
c言語の演算子の覚え方のコツをお話しますね。
制御構造の理解ができれば、Cの言語の理解が深まりますね。 その1
C言語のおさらいもこれで終わります。繰り返しの構造を理解します。
デバイスとデバイス名、デバイスドライバーのお話をしますが、聞き流しで結構です。教養程度に聞いてくださいませ。その1
デバイスとデバイス名、デバイスドライバーのお話をしますが、聞き流しで結構です。教養程度に聞いてくださいませ。その2
デバイスとデバイス名、デバイスドライバーのお話をしますが、聞き流しで結構です。教養程度に聞いてくださいませ。その3
おつかれさまでした。これでCの言語のまとめは終了です。安心してチーム開発の章にお進みくださいね。
MacOSにC言語のチーム開発の環境を構築するには
Windowsへ、MacやLinuxと同様のC言語と環境を用意することは意外にも難しいのです。 その1
ここではWindowsへ、GNUーC互換の高速CコンパイラのTCCを導入する方法を解説します。
ConEmuの導入方法と、ANSICONの導入方法について解説します。
最新のWindpws10ではConEmuが正しく動作しないこともあるようなのでansiconを導入しったほうがよさそうです。
GNU-Makeは、C言語を使用してチーム開発をするには必須のユーティリティです。
この章で学ぶこと
まずは、なぜチーム開発は難しいのかを理解します
プロジェクトのチームメンバーが共通で認識しなくてはならないことは何かを理解します
チームとしてのルール厳守からドキュメントの重要性が見えてきます
プロジェクトの構成と基本的なドキュメントは関係があります。
バージョンと言う言葉はよく使われますが、リビジョンやバリエーションとは何なのでしょうか?
C言語に関係なくプロジェクトのメンバーが多くなるとソフトウエア開発にはいくつかの問題が見えてきます
プログラム言語には関係なく、プロジェクトにはこうした問題がつきまといます
共有データー問題を解決しようと、開発環境を共有し、モジュール化を導入し解決できるかにみえた。しかし今度は同時更新の問題が起きることがわかってきた。
プロジェクトの開発メンバーが少ないうちは、ルールの厳格化で、依存関係の徹底などをおこなってある程度同時更新問題は防げますが、メンバーの数が増えれば増えるほど、人力では、同時更新問題は防げなくなります。従って、ソフトウエア(開発)管理サーバー(ツール)を使用することで解決しています。
よくソース管理導入で、SourceForgeやGithubの名前が出てくるのですが、基本的には個人向けのオープンな管理サービスなので、企業のような守秘義務の厳しい開発では使用しません。しかし、近年、これらのサービスでも企業向けオプションが発表され(有料サービス)、それらの使い良さから導入する企業もあるようです。
独立性の高いモジュールを作ることは重要ですが、モジュールの独立性だけでは解決のできないことがあります。それは、関数の同じ名称が別モジュールに存在する可能性です。
C言語には、関数をそのモジュール内でのみしようできるという、関数のローカル化=STATIC化がありますが、一時的にでも、関数の依存関係を切って独立性を高めることができるようになっています。がしかし、恒久的な解決方法ではありません。
ドキュメントは、もちろんソフトウエア制作に必用なのですが、制作だけではなく。保守のために必用なものなのです。
基本的なドキュメントについて解説します。
このコースのサンプルプロジェクトの関数仕様書を書くのに必用な、関数仕様書のサンプル例と、ワード形式の関数仕様書ファイルを添付しておきました。
この部分のドキュメントは、どの企業にも必ず用意されていますが、微妙に方言のある部分なので、こういう種類のドキュメントがあるのだ。と理解してほしいレクチャーです。
この章で学ぶことと、GNU-makeの導入に関して概要を示します。
Windows10にインストールしてみて、64bitWindowsだと正しく動作していないかもしれません
64bitWindows10で正しく動作しない場合の対処方法について述べています。
どうやらGNUmake4.2.1の64ビット版があるようで、これをインストールするにはパッケージマネージャーで可能です。
makeコマンドの概要とC言語との関係、RADツールとの関係についても述べています。
サンプルの環境をダウンロードして、実際にmakeがどんなものかを実感してみてください。
makeコマンド(ユーティリティ)は、プログラムをコンパイルリンクして作成する意外にも様々なことが出来ます。それを学習しながらmakeFileの構造も学習しましょう
どんなにプロジェクトの人員が多くても、make環境のメンテナンスなどは一人の担当者が行う必用があります。
このレクチャーのPDFと、サンプルプロジェクトのZIPファイルをダウンロードしてください。
ANSIエスケープシーケンスとリアルタイムキー入力にかんしては、なかなか3大OSで同様の環境を揃えることができないのでまずは概要から理解しましょう。
リアルタイムキー入力とANSIエスケープシーケンスの機能を実装するためには、まずどのようなものがあるのかを知らなくてはなりませんので解説しています。
ダウンロードしたZIPファイルを解凍すればすべてのファイルがありますので、参考にしながら学習しましょう
ダウンロードしたZIPの中にSample2として、ゲームの種のようなプログラムがMakefile付きでありますので、それをコンパイル実行してみましょう。makeはMacOS用になっていますが、Windows用に修正すればもちろんWindowsでも動作します。ただし、ANSIエスケープシーケンスが導入してあることが条件になります。
リアルタイムキー入力の補足説明です。
このレクチャーからもZIPファイルをダウンロードできるようにしておきますので、まずはダウンロードして解凍後になかのプログラムを見ながら動画を視聴してくださいませ。
RealKey.c の解説をしています。#if 〜#endifなどの使い方も参考になるとおもいます。
前回と今回で、端末モードの変更などについて解説し、リアルタイムキー入力の機能を理解します。
リアルタイムキー入力にひきつづき、ANSIエスケープシーケンスの機能の実装についても解説しています。
ANSIエスケープシーケンスの残りの関数についてと、関数仕様書の描き方について解説しています。
近年のMacOSやLinuxの場合UTF-8標準で問題はないとおもいますが、Windowsの場合はWindowsXP以降事情が複雑です。内部コードがUTF-16で、標準文字コードがシフトJISだからです。Windowws10でも、互換性のために標準文字コードはシフトJISですが、実はUTF-8にもできるのですが、標準ではありません。ちなみに、MacOSの内部コードはシフトJISでも大丈夫ですがLinuxの場合はEUC文字コードが標準だったりします。なにか問題があれば、この文字コードの問題をおもいだしてください。
まずはリンクリストとはどのようなアルゴリズムなのか解説します。
今回のサンプルプロジェクトは、ANSIエスケープシーケンスにしても、リンクリストにしてもハードウエアの制御ではないのでドライバーではなく、ライブラリに近いもので、ユーティリティー関数と考えられますね。
リンクリストは、構造体とメモリとポインタの理解が必用なので、復習しておいてくださいね。
C言語入門編では、なかなか難しかったと思われる、typedefによる型の定義やポインタの応用などを垣間見ることができますよ
動画中で、北海道4Uの話題をお話していますが、「983m 4U」 で検索できるブログのことを指していますのでこの場をお借りして訂正いたします。
リンクリストを理解するためには、リンクリストのブロックの内訳を定義している構造体と、それを使用して、メモリから、その型のメモリを切り出すためのstdlibのメモリ関連関数の使い方が大事です。
かなり難易度の高いリンクリストアルゴリズムの内容なので、このコースの付録的内容として考えて、あえて、珈琲ぶれいくとしてお話します。その1です。ウインドウシステムなどを自作する時に必用です。
複数のリンクリストを同時に使っていると、メモリの使用効率がどんどん悪くなって、メモリの中が隙だらけになって、メモリ不足になることがあるのを手書き図で説明します。
ガベージコレクションというメモリの使用効率を向上させる仕組みがなぜ必用なのかが解るようになります。
共用体のリンクリストを作れば、メモリの使用効率をぐんと向上できるのです。
共用体の「大は小を兼ねる」という考え方が、メモリの仕様効率を向上させる理由 その1
共用体の「大は小を兼ねる」という考え方が、メモリの仕様効率を向上させる理由 その2
メモリブロックを1つ作成する関数と、リンクリストイニシャライズの構造
リンクリストの終了処理関数の構造について
リンクリストの重要機能、リンクを1つ追加する基本関数の構造
最近技術である、ブロックチェーンにリンクリストを応用するためにはどうすれば良いのかを解説します。
以上で、サンプルプロジェクトのリンクリストの演習は終了です。
お疲れ様でした。
オフィシャルブログの検索エンジンからの発見の仕方などをお知らせします。
このコースは、専門学校でC言語履修後に教えていた内容です。ただしC言語マスターが必須条件ではありません。
このコースでC言語を知っていたほうが良い部分はサンプルプロジェクトの実践部分の2つの章のみになります。他の章では開発環境の構築方法やmake、ドキュメントの残し方などプログラミング学習者が持っていたほうが良い内容になります。