C 基本講座

構造体のいろいろな宣言の仕方について

LinkedInラーニングの無料トライアルを今すぐ試そう

無料で視聴する すべての加入プランを見る
このレッスンでは、構造体のいろいろな宣言の仕方について説明します。
講師:
07:23

字幕

このレッスンでは構造体の色々な宣言の仕方について説明します。このプログラムは構造体の型枠を宣言してから構造体の変数と配列を宣言しています。構造体は型枠の宣言と実体の宣言の両方で通用範囲を考慮しなければなりません。このプログラムでは型枠と実体の宣言をmain 関数の中で行っています。仮にこのような関数を追加し、構造体の変数の宣言を行うことにします。この関数を main 関数から呼び出して利用してみましょう。コンパイルしてみましょう。するとこのようにコンパイラエラーが表示されています。これは構造体の型枠の宣言をmain 関数内で行っているためfunc 関数からは見えないためです。このような場合には構造体の型枠の宣言をmain 関数の外で行う必要があります。この構造体の型枠の宣言を切り取ってmain 関数の上に貼り付けます。このように main 関数の外、実体の宣言よりも先に型枠の宣言を移動しましょう。今度はビルドするとビルドエラーが消えました。実行もきちんとできますね。もし複数のソースファイルで構造体型を参照する必要がある場合には型枠の宣言はヘッダーファイルに記述してください。それを include することで各ソースファイルで共通に使用することができるようになります。 このプログラムは構造体の型枠を2つ宣言し、それぞれの型枠から構造体の変数を宣言しています。構造体のメンバ名とタグ名は一般の変数と重複して名前をつけることができます。また、構造体が異なれば同じメンバ名を使うことができます。例えばこのプログラムの場合、no とそして name がそれぞれの型枠とそしてローカル変数で重複して付けられています。けれども問題なく利用することができます。確認してみましょう。このように構造体のメンバを代入したりコピーした no、name がきちんと表示できていることが確認できます。また、構造体のタグ名を変数名や関数名として使用することもできます。このように構造体のタグ名と構造体の変数名を同じにしています。また、構造体のタグ名を使って変数を宣言しています。これでも問題なくビルドができます。今これは使っていないので警告がでますが、特に問題はありません。ただ、このように記述するとコードが読みづらくなるのでタグ名と同じ変数名や関数名を使用するのはお勧めしません。構造体の型枠と実体の宣言はこのように同時に行うこともできます。この場合、ここまでで構造体の型枠を宣言し、そしてここで実体である変数を宣言しています。 さらに初期化も一緒に行うことができます。このように記述すると初期化も一緒に行うことができます。また、構造体のタグ名を記述しないで宣言することもできます。例えばこのように記述すると構造体のタグ名を宣言しないでこのまま構造体の変数を宣言し、初期化を行なっています。このように構造体の変数を使うこともできます。ただこの場合には構造体の型枠の使い回しができないのであまり実用的ではありません。実行してみましょう。このように実行が確認できます。構造体は typedef で別名をつけることができます。typedef の構文はこのようなものでtypedef、すでにある型、新しい名前のように記述します。すでにある型に対して新しい名前をつけることができます。構造体の宣言は頭にstruct がつくのでどうしても型名が長くなります。そのため、構造体の宣言を簡潔にするためにtypedef はとてもよく使われます。この場合、この struct からこの波括弧の終わりまでがBody という名前で置き換えられます。ですからこのように Body seito2 のような記述が可能になります。この場合、この記述はこのように書いたのと同じことになります。 実行を確認してみましょう。このように実行が確認できますね。このレッスンでは構造体の色々な宣言の仕方について説明しました。

C 基本講座

C言語はUNIXというOSを記述するために開発されたプログラミング言語で、組み込みシステムの開発を中心に今も使われています。このコースでは簡単なプログラムを作成しながら、C言語の基本的な文法を学びます。データ型や制御文などの基礎的な文法からポインタや構造体といったC言語の特徴的な内容まで幅広く取り上げます。よく使われる標準ライブラリ関数も数多く紹介します。

5時間45分 (60 ビデオ)
現在、カスタマーレビューはありません…
ソフトウェア・トピック
プラン加入者限定
発売日:2017年11月05日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。