算機実習 I

第七回 (2005年 6月 2日)

構造体、共用体、列挙型

AGU

© 2005 Martin J. Dürst 青山学院大学

先週の試験について

第二問の正解:

C:\Test> test.exe <input.txt >output.txt

課題について

C か C++ か

構造体 (struct)

struct の簡単な例

struct person {
    char name[40];
    int height;
    int weight;
};

struct person personA = {"myName", 170, 70 };
int bmi = personA.weight*10000 / (personA.height*person.height);

プログラミング上のデータの大切さ

typedef を使おう

typedef の仕組み

共用体 (union)

共用体の応用例

コンパイラで字句解析から構文解析へ渡されるトーケン

typedef struct {
    ttype type; /* トーケンの種類 */
    union {
        int    ival; /* 整数用 */
        double dval; /* 浮動小数点数用 */
        char   name[40]; /* 識別子用 */
    } val;
} token;

列挙体 (enum)

例 (04C3、階段じゃんけん、の改造):

typedef enum {GUU, CHOKI, PAA} janken;
janken moveA, moveB;
...
if (moveA == PAA)
    pointA += 5;

先週の演習について: 06B1

06B1 の変更

戻り値は数字ではなくて列挙体にする。三つの選択肢がある:

演習についての補助

次回の準備