組込み現場の「C」言語 基礎からわかる徹底入門
《重点学習+文法編》

[表紙]組込み現場の「C」言語 基礎からわかる徹底入門 《重点学習+文法編》

A5判/440ページ/CD1枚

定価(本体2,880円+税)

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 推奨文献/参考文献