組込み現場の「C」言語 基礎からわかる徹底入門
《重点学習+文法編》
《重点学習+文法編》
2009年12月5日紙版発売
SESSAME 編
A5判/440ページ/CD1枚
定価3,168円(本体2,880円+税10%)
ISBN 978-4-7741-4083-4
ただいま弊社在庫はございません。
書籍の概要
この本の概要
組込みプログラマーはニーズも従事者も増加しているという現実があります。C++の利用も増えてきたとは言え,現状,相変わらず主流はC言語です。組込みプログラマーの経歴は多彩であり,必ずしも全員が良いコードの書き手というわけでもありません。特に現場経験がない人の場合,組込みに特有の流儀を知らず,苦労することが多いようです。そこで,組込みに特化したC言語の入門書は存在しないという現実を踏まえ,満を持して本書を送り出します。一種の文法書とは言いながら,特に組込みに必要な部分に説明を絞り込んでいます。
こんな方におすすめ
- 組込み開発の現場でプログラミングに携わっている方
- プログラミングの初心者ではないが組込み開発は初めてという方
- 将来,組込み開発に携わりたいと考えている学生など
目次
第1章 C言語を学ぶ前に
- 1.1 C言語の特徴
- 1.2 組込み機器とC言語
- 1.3 2進数と8進数,16進数
- 1.4 プログラムはCPU上でどのように実行されるか?
- 1.5 C言語とコンパイラ
- 1.6 組込みソフトウェアの開発
- 1.7 データ+アルゴリズム=プログラム
第2章 C言語によるプログラムの構成要素
- 2.1 プログラムの構成要素
- 2.2 データ型
- 2.3 式,変数,定数
- 2.4 関数
- 2.5 名前
- 2.6 コメント
- 2.7 改行,空白,タブ
第3章 C言語文法の基礎
- 3.1 プログラムの全体構成
- 3.2 使用する変数の宣言
- 3.3 スコープ(有効範囲)
- 3.3.1 広域変数と局所変数
- 3.3.2 別ソースファイルにある広域変数や関数の利用
- 3.4 記憶クラス
- 3.5 関数の呼び出しと結果の受け取り
- 3.6 定数
- 3.6.1 数値定数
- 3.6.2 文字定数
- 3.7 配列
- 3.8 文字列
- 3.8.1 文字列定数
- 3.8.2 文字列変数の宣言と文字列の代入
- 3.8.3 文字コードとCプログラム
- 3.9 演算子
- 3.9.1 算術演算子
- 3.9.2 論理演算子
- 3.9.3 ビット論理演算子
- 3.9.4 その他の演算子
- 3.10 演算子の優先順位
- 3.11 制御構造
- 3.11.1 構造化プログラムとその要素
- 3.11.2 連接
- 3.11.3 選択
- 3.11.4 繰り返し
- 3.12 プリプロセッサ指令
- 3.12.1 プリプロセッサとは?
- 3.12.2 #define
- 3.12.3 #include
- 3.12.4 #if
- 3.12.5 プリプロセッサによる処理の例
第4章 C言語をもっと深く知る
- 4.1 データの構造
- 4.1.1 構造体
- 4.1.2 多次元配列と構造体の配列
- 4.2 変数の型名を新たに作成する
- 4.3 データ型の変換
- 4.3.1 代入によるデータ型の変換
- 4.3.2 キャストによるデータ型の変換
- 4.3.3 異なるデータ型が混在する演算
- 4.4 C言語とメモリの関係
- 4.4.1 セクション
- 4.4.2 エンディアン
- 4.4.3 ワードアラインメント
- 4.4.4 データ型とメモリ
- 4.4.5 関数の呼び出しとメモリ
- 4.5 アドレスを扱う―ポインタ
- 4.5.1 ポインタの基本
- 4.5.2 ポインタを介して動的に領域を確保する
- 4.5.3 配列をポインタで利用する
- 4.5.4 文字列とポインタの関係
- 4.5.5 構造体にポインタでアクセスする
- 4.5.6 関数にポインタを渡す
- 4.5.7 ポインタを返す関数
- 4.5.8 関数をアドレスで呼び出す
- 4.6 データ型への修飾子const,volatileとその振る舞い
第5章 ハードウェアを使う
- 5.1 ハードウェアを使うに当たって
- 5.2 ポート入出力
- 5.3 割り込みを扱う
第6章 実際にプログラミングをしてみよう
- 6.1 演習を始めるに当たって
- 6.2 配列を用いたプログラム
- 6.2.1 [課題A1]配列に格納された自然数の最大値を求める関数の作成
- 6.2.2 [課題A2]配列のソート
- 6.2.3 [課題A3]最短経路の探索
- 6.3 文字列を扱うプログラム
- 6.3.1 [課題B1]指定した長さの文字列を比較する関数の作成(strncmp()と同等)
- 6.3.2 [課題B2]指定した長さの文字列をコピーする関数の作成(strncpy()と同等)
- 6.4 整数型データの表示
- 6.4.1 [課題C1]2つのアプローチによる簡易版16進表示関数の作成
- 6.4.2 [課題C2]機能アップ版4ビットデータ取得16進表示関数の作成
- 6.4.3 [課題C3]整数型データを16進表示する関数の作成(完成版)
- 6.4.4 [課題C4]整数型データを16進/10進で表示する関数の作成
- 6.5 ポインタを用いたプログラム
- 6.5.1 [課題D1]文字列の長さを取得する関数の作成(strlen()と同等)
- 6.5.2 [課題D2]文字列を比較する関数の作成(strcmp()と同等)
- 6.5.3 [課題D3]文字列をコピーする関数の作成(strcpy()と同等)
- 6.5.4 [課題D4]文字列から10進数へ変換する関数の作成(atoi()と同等)
- 6.6 構造体を用いたプログラム
- 6.6.1 [課題E1]構造体データを表示する関数の作成
- 6.6.2 [課題E2]名前による構造体データのソート2題
- 6.6.3 [課題E3]構造体データをグループ種別でソートする関数の作成
- 6.6.4 [課題E4]拡張性を考慮したソート関数の作成
- 6.7 簡易版printf()を作る
- 6.7.1 [課題F1]書式指定可能16進変換表示関数機能限定版の作成
- 6.7.2 [課題F2]書式指定可能10進/16進変換表示関数機能限定版の作成
- 6.7.3 [課題F3]書式指定可能10進/16進変換表示完成版プログラムの作成(簡易版printf())
- 6.8 マイコンでソフトウェアを動かす
- 6.8.1 今回使用するマイコンボード
- 6.8.2 マイコンボードを使う演習の準備
- 6.8.3 コンパイル-リンクしてみる
- 6.8.4 [課題G1]putchar()を用いた1文字を表示するマイコン用関数(一部)の作成
- 6.8.5 [課題G2]自作文字表示関数を使ったマイコン用文字表示プログラム(全体)の作成
第7章 ノウハウ編
- 7.1 ファイル関数
- 7.2 書式付き出力と書式付き入力
- 7.3 文字入出力関数
- 7.4 エラー関数
- 7.5 文字種別の判定と変換
- 7.6 文字列操作関数
- 7.7 数学関数
- 7.8 ユーティリティ関数
- 7.9 診断
- 7.10 可変引数リスト
- 7.11 非局所的ジャンプ
- 7.12 シグナル
- 7.13 日付と時刻の関数
付録
- 付録1 マイコンあるいはコンパイラに依存するC言語要素のまとめ
- 付録2 演習環境のインストール
- 付録3 推奨文献/参考文献
この本に関連する書籍
-
組込み現場の「C++」プログラミング 明日から使える徹底入門
組込み開発におけるプログラムは,年々その規模が拡大しています。プログラムの行数も,最近3年の間に,10万行を超えるものの割合が全体の3割から6割以上へと倍増してい...
-
組込み現場の「C」プログラミング 標準コーディングガイドライン
最近の現場にはコードの書き方をきちんと教わっていない人が増加しているとの話が聞かれます。「教える側」が多忙を極めていることにも原因がありますが,結果的に成果...
-
組込み現場の「C」プログラミング 基礎からわかる徹底入門
組込み開発が,日本メーカーが世界で生き残るための切り札ともなっていることは周知の事実です。ケータイをはじめとする家電のデジタル化や高機能化,またモデルチェン...