ソース・コード記述の第一歩 ―― 組み込みCの"Hello World!"

山際 伸一

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月,共立出版.

 

やまぎわ・しんいち
高知工科大学 情報学群 准教授
 

«  1  2
組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日