ものづくりBLOG blog page

第3章 何もしない(2):変数−型−

2011-01-01 (Sat) 03:01
H8+C言語入門:第3章 何もしない(2):変数−型−
−文法(概要)−
 
 「変数」について、次のことについて説明します。
  ・変数の役割
  ・予約語
  ・型の宣言
  ・変数の初期化
  ・複数の変数の同時宣言
 
 
 ■変数の役割
  変数の役割は、簡単に言うと「数値を保存するもの」ということができます。
  変数は、ASCIIコードの文字で表され、任意の文字の組合せとすることができます。
 
  例 lower →下限値として使う変数
    upper →上限値として使う変数
 
  プログラミングをする時、変数の命名規則を定めておくとよいです。それは、合同でプ
  ログラムをしていく時に特に役立ちます。プログラマが各自バラバラに変数名を付けて
  プログラムを作成すると、同じ意味なのに命名が異なるので、それを覚える必要が出て
  きます。かなり面倒くさそうでしょ?
  そこで、一つの英単語となる様に命名していきますが、先頭文字の扱い方、一つの変数
  名を複数の英単語で組み立てる時の英単語の繋げ方などを共通化しておくといいと思い
  ます。
 
  例 lowerLimit →下限値として使う変数
    二つ以上の単語で構成する時は、最初の単語は全て小文字とし、以降の単語の先頭
    文字は、大文字とする。
 
  例 iUpper →上限値として使う変数
    先頭文字は、その型を表し(上記例では、整数として「i」を先頭にしている)、次に
    続く単語の先頭文字は、大文字とする。
 
  また、次の様な制約もありますので、ご注意ください。
 
   名前には、予約語を使うことはできません。
   最初の文字は、英文字、または、アンダーバー「_」でなければなりません。
   2文字以降は、英文字、数字、アンダーバー「_」が使えます。
   名前は、31文字まで識別されます。
   !英文字は、大文字と小文字は識別されます。
 
 
 ■予約語
  予約語を次に示します。
  これらを見られると分かりますね。C言語で使うものばかりですよ。
  もし、変数として万が一使ったとして・・コンパイラが予約語を使っていますぞ!と注
  意してくれます。
 
   auto/break/case/char/const/continue/default/do
   double/else/enum/extern/float/for/goto/if
   int/long/register/short/signed/sizeof/static
   struct/switch/typedef/union/unsigned/void/volatile/while
   !/は、単語(予約語)を分ける為の記号として使っています。
 
 
 ■型の宣言
  すべての変数は、一般的に使う前に、普通は関数のはじめの実行分の前のところで宣言
  しておく必要があります。
 
  例 int i; //変数:型の宣言
    i = 0; //変数の初期化
    i = i + 1; //文:算術式
 
  「宣言」は、変数の性質を告げるためのものです。
  変数の宣言は、次の様な文で表します。これが基本形です。
 
   型 変数名;
 
  H8のCコンパイラでは、宣言の「型」は、次のようなものがあります。
 
   文字 char
   整数 int
   実数 float
   実数 double
 
  そして、型修飾というものがあり、それぞれの変数の長さを決めることができます。
  それによって、取り扱うことができる数値の範囲が自ずと決まる、ということになりま
  す。
  H8の様な小型のCPU+メモリの構成の場合、できるだけプログラムをコンパクトにする
  ことも要求されます。ですから、変数の型の宣言では、できるだけ小さな型を用いて処
  理を組み上げる必要がでてくるでしょう。変数の数そのものを制限する様なこともある
  かもしれません。H8のようなCPUでは、この様な「工夫」が求められます。
 
   2バイト short
   4バイト long
   符号付き signed
   符号なし unsigned →符号を解除する
 
  これら型修飾と定義型が組み合わさると次の様になります。
 
   [型名]→[別名]→[値の範囲]
   char → signed char → -128~+127
   int → signed int → -32,768~+32,767
   short → short int → -32,768~+32,767
   long → long int → -2,147,483,648~+2,147,483,647
   unsigned char → (なし) → 0~255
   unsigned → unsigned int → 0~65,535
   unsigned short → unsigned short → 0~65,535
   unsigned long → unsigned long → 0~4,294,967,295
   float → (なし) → ±3.3E38(7桁)
   double → (なし) → ±1.7E308(15桁)
   long double → (なし) → ±1.7E308(15桁)
 
 
 ■変数の初期化
  変数の初期化は、C言語では必須です。
  変数の宣言だけをしただけでは、その変数にどんな値が入っているかは、保証されませ
  ん。宣言をした後なので、0になっているだろうとか・・思っていませんか?それは、
  誰も保証していないので、自分で0にするという処理をする必要があるのです。
  変数の初期化には、次の二通りの方法があります。
  一つ目は、次の様に変数の宣言の後に、明示的に値を代入するというものです。
 
   例 float f;
     int i;
     f = 1.234;
     i = 0;
 
  もう一つは、次の様に変数の宣言の時に同時に初期化するやり方です。
 
   例 float f = 1.234;
     int i = 0;
 
  予め初期値が決まっているのであれば、変数の宣言の時に初期値をセットするのがいい
  かもしれませんね。プログラムがすっきりして、見栄えもいいと思います。
 
 
 ■複数の変数の同時宣言
  型が同じ変数がある時は、同時に宣言することができます。
  例えば、for文のカウンタとしてよく使うi、j、kなんかは次の様な書き方ができます。
 
   例 int i, j, k;
 
  型の後に宣言したい幾つかの変数をカンマで区切って並べます。
  とすると、前述の型の宣言の時の初期値の設定を複数の宣言の同時宣言の時にどうすれ
  ばいいのか、思いますよね。それは、次の様に書けるのです。
  先の例で、iとjを0に初期化する、kを宣言のみというのをしてみましょう。
 
   例 int i = 0, j = 0, k;
 
  どうですか?分かりましたか?
  只、変数の説明書きを一つひとつに書きたい時は、このまとめて同時宣言というのは、
  コメントが付けにくいですね。プログラムの書き方というところでは、意見が分かれる
  ところです。でも、こんなことができるということを覚えておくといいでしょう。
 

この記事を表示

第3章 何もしない(2):変数

2011-01-01 (Sat) 03:00
H8+C言語入門:第3章何もしない(2):変数 第3章でも、何もしないプログラムを作成します。第2章では、main関数の書き方を示しました。第3章では、C言語で処理を書く際の基本である変数に...
記事全文を読む

第2章 何もしない(1):main()関数−文−

2011-01-01 (Sat) 02:01
H8+C言語入門:第2章何もしない(1):main()関数−文−−文法(概要)− 第2章の続き、補足です。文法を少し、お復習いしましょう。&n...
記事全文を読む

第2章 何もしない(1):main()関数

2011-01-01 (Sat) 02:00
H8+C言語入門:第2章何もしない(1):main()関数 第2章では、何もしないプログラムを作成します。 <サンプル2-1>voidmain(void){} ...
記事全文を読む

第1章 講座の条件

2011-01-01 (Sat) 01:00
H8+C言語入門:第1章講座の条件 第1章では、本講座を開設するにあたり、プログラムを動かす為の環境のことや、C言語の機能面で触れていないところを明確にします。 この講座では、C言...
記事全文を読む

H8対応C言語プログラミング入門 −目次−

2011-01-01 (Sat) 00:00
H8+C言語入門:H8対応C言語プログラミング入門−目次− 第1章講座の条件第2章何もしない(1):main()関数第3章何もしない(2):変数第4章何もしない(3)...
記事全文を読む

高校生ものづくりコンテスト熊本大会 電気系 電子回路組立部門

2010-06-22 (Tue) 00:51
2010年6月13日(日)に「平成22年度第7回熊本県高校生ものづくりコンテスト」が開催されました。電気系電子回路組立部門の様子を少し紹介します。電子回路組立部門では、下記学校により熱い闘いがあったの...
記事全文を読む

第7回熊本大会コンテスト回答例-課題4.-

2010-06-17 (Thu) 00:45
「平成22年度第7回熊本県高校生ものづくりコンテスト電気系電子回路組立部門」のプログラミング「課題4.」の回答例を示します。「課題4.」は、四つ((1)、(2)、(3)、(4))に分かれています。課題...
記事全文を読む

第7回熊本大会コンテスト回答例-課題3.-

2010-06-17 (Thu) 00:39
「平成22年度第7回熊本県高校生ものづくりコンテスト電気系電子回路組立部門」のプログラミング「課題3.」の回答例を示します。「課題3.」は、三つ((1)、(2)、(3))に分かれています。課題の提示方...
記事全文を読む

第7回熊本大会コンテスト回答例-課題2.-

2010-06-17 (Thu) 00:33
「平成22年度第7回熊本県高校生ものづくりコンテスト電気系電子回路組立部門」のプログラミング「課題2.」の回答例を示します。「課題2.」は、二つ((1)、(2))に分かれています。課題の提示方法として...
記事全文を読む
<前 1 2 3 4 5 6 次>

ものづくりBLOG

Blog Category

Blog Calendar

RSS 2.0