ソース・コード記述の第一歩 ―― 組み込みCの"Hello World!"
tag: 組み込み ディジタル・デザイン
技術解説 2010年2月 5日
2. 組み込みC言語の基本を理解する
● C言語は関数が基本
C言語では,関数を元にしてソース・コードを記述していきます.関数の構造が分からないと,何も記述できません.そこで,関数の構造を説明します(図3).
図3 関数の構造
言語では館巣を元にしてソース・コードを記述する.
関数では,まず最初に返り値の型を宣言します.また,返り値がある場合は,必ず,関数の最後のreturnで型の一致する値を返します.
例えば,リスト2のmain関数では,型としてintが指定されています.最後のreturnでは1を指定しています.
返り値の型の後に関数名を指定します.また,かっこでくくった中に,引き数を指定します.引き数は,
引き数の型 引き数
で指定します.複数の引き数がある場合は,カンマでつなげます.引き数がない場合は,何も書きません.リスト2のmain関数は,引き数をとりませんので,何も書いていません.これでも関数として成り立ちます.
関数の処理の本体は,{と}でくくった中に記述します.
● 処理の本体で関数を呼び出す
処理の本体は,変数宣言部から始まります.変数の宣言は,
変数の型 変数名, 変数名, ..., 変数名
と記述します.リスト2では変数を使わないので,記述していません.
C言語は関数が基本です.従って,処理の本体では,関数の呼び出しが頻繁に行われることが特徴の一つです(図4).
図4 関数の呼び出し (クリックすると拡大します)
C言語では,処理の本体で関数の呼び出しが頻繁に行われる.
関数の呼び出しでは,関数名を指定し,かっこの中には引き数を,その関数がとりうる変数の数だけ指定します.リスト2で呼び出しているLED_ON関数は引き数をとりませんので,かっこの中には何も書かれていません.
● 関数の終了はreturn
C言語では,関数を基本として処理を記述していきます.つまり,関数の呼び出しと,その関数の終了(return)が繰り返され,処理が進行していきます.
組み込みシステムの場合,最初に呼び出されるmain関数については,考慮が必要です.リスト2のmain関数は,マイコンが動作し始めた後に最初に実行されます.この関数には戻り場所がありません.つまり,main関数は絶対に終わってはいけない関数です.
main関数を終了させないようにするために,リスト2では,while文を使って無限ループを作っています.
これはC言語のみならず,組み込みシステム向けのソフトウェア全般の特徴です.組み込みシステムでは,マイコンが無限に動き続けるように記述をしなければいけないことに注意してください.
● ライブラリを読み込む
C言語特有の"おまじない"の一つとして,
#include <ファイル名>
があります.これは,ヘッダ・ファイルと呼ばれるファイルを読み込む記述です.あらかじめ用意されているライブラリを使うために必要です.
リスト2では,cqlib.hというヘッダ・ファイルを読み込んでいます.これにより,CQLIBライブラリとして用意されているLED_ONのような関数を使うことができるようになるというわけです.
本特集では,「書かないと動作しない」と思って単純にコピーしてください.これは筆者があらかじめ作成したものです.実際の開発では,自分自身,または自分のプロジェクト・チームの仲間が作成する必要があります.具体的には,説明を進めるにつれて順次説明します.
● 処理の内容をコメントで記述する
ソース・コードを記述していると,処理の説明などをメモしておきたい場面に遭遇します.そのようなときに使うのがコメントです.
コメントはC言語コンパイラが無視し,処理の内容としては認識されない部分です.
リスト2では,/*と*/でくくった部分と,//と記述した後の行末までがコメントです.
参考・引用*文献
(1) B. W. カーニハン,D. M. リッチー著,石田晴久訳;プログラミング言語C 第2版 ANSI規格準拠,1989年6月,共立出版.
やまぎわ・しんいち
高知工科大学 情報学群 准教授