【Age of Networks(AoN-DB)え~ちゃんぶろぐねっとわ~く】【講義】構造体:Cプログラミング

東方二次ゲームメインからオリジナル・企業系や漫画へ。TRPGやサバゲのアナログライクも

Age of Networks(AoN-DB)え~ちゃんぶろぐねっとわ~く

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【講義】構造体:Cプログラミング

レビュー書いてるだけに飽き足らず、人様にえらそうに講義垂れる立場ではないんですが、「構造体について教えてくれ!」と言われたので、折角なのでちょっとまとめてみました。
直接解説できないので、何を言ってなかったらすみません。
なお、身内向けというか、ある程度知識がある人を想定しています。

【要求レベル】
・データ型の意味(int long float double charなど)が分かる
・多重配列の意味が分かる
データベースプログラミングorSQLの説明が理解できる程度の能力(今はご存じなくても大丈夫です)


大体これぐらい。一般のCプログラミングとしては初心者卒業程度です。


!プログラムを調べている方には特にお願いしているのは、自分でも意味が分からないプログラムを作らないように、という事です
 書式だけ分かってもプログラムは出来ませんし、プログラムを動かす事を目的にしないで下さい!



まずは、構造体の意味ですね。
構造体とは、一つのデータベースだと考えてください。
厳密にはデータベースではありませんが、考え方として捉えてください。

データベースの項目
データベースのデータ名
entrycode紅魔郷妖々夢永夜抄あとなんか適当にデータ名
(データ1)0100志摩嶋エイジExtraNormalExtra Clear
(データ2)
(データ3)
(ry

データベースって大体こんな感じですね。
ここにどんどんデータを入れていきます。

その前に、構造体の定義ですね。
上のようなデータベースを作るため、この命令を入れましょう。
【書式】
struct 構造体
{
int entry                                 /*変数宣言 変数名:データベース的には識別用に数字を使う事が多いです*/
char HandleName[128]    /*変数宣言 配列名:数字では誰か分からないので、日本語で名前をつけます*/
もうなんか適当に宣言         /*紅魔郷とか妖々夢の項目は数字以外なのでcharで宣言してくださいね*/
(ry
}

これをすることで、
       entrycode紅魔郷妖々夢永夜抄あとなんか適当にデータ名
が出来ます。
(分かりやすくする為に、紅魔郷とか妖々夢とか日本語で変数名を書きましたが、きちんと半角英数で定義はして下さい)

【意味】
続いて、
(データ1)0100志摩嶋エイジExtraNormalExtra Clear(何も考えてないけど作ってます)

を作ります。
関数内で、
struct 構造体名 変数名(データベース) = { 0100,"志摩嶋エイジ","Extra","Normal","Extra Clear",""};
これで、定義した構造体の形を持ったデータベースが出来ます。
なので、

struct 構造体名 Data1
struct 構造体名 Data2

は、同じデータ型になりますが、中身が違うデータベースになります。
(例)
struct 構造体名 Data1 = { 0100,"志摩嶋エイジ","Extra","Normal","Extra Clear",""};
struct 構造体名 Data2 = { 0100,"志摩嶋エイジ","Extra","Normal","Extra Clear",""};

中に入っているデータ・データ型は同じので、見かけの上では同じデータです。
格納されているアドレスが、&Data1,&Data2で参照できます。

なお、データベースらしくするためには、配列にする必要があります。
例えば、
struct 構造体名 Data1 =
{
0100,"志摩嶋エイジ","Extra","Normal","Extra Clear",""
};
は、一つのデータしか入りません。
複数のデータを代入するためには、
struct 構造体名 Data1[XX] =
{
{ 0100,"志摩嶋エイジ","Extra","Normal","Extra Clear",""}
},
{なんかいれる}
};
等とする必要があります。
Data1は変数なので複数は格納できない、というのは基本ルールと同じなんですね。

初期化は
struct 構造体名 Data1=
{
}
で、出来ます。
さて、表示の仕方も合わせて説明します。
(Printデバッグを知っておくと色々便利)

printf
("entry=%d,code=%s,紅魔郷・妖々夢ry",entry,code,紅ry);
データを複数代入(配列化)した時は、【"",entry[X],code[X]ry】としましょう。
多分表示はされますが、めちゃくちゃなデータが表示される事になるでしょう。
デバッグする時は、適当な場所にこれを埋め込んで使うと良いでしょう。

参考:初心者のためのポイント学習C言語さん(http://www9.plala.or.jp/sgwr-t/index.html)
関連記事
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。