C言語応用2.7 構造体ポインタ

構造 体 メンバ ポインタ

構造体のメンバー変数は、構造体の変数名.メンバー変数名でアクセスできる. 関数ポインタとは? 関数のアドレスを格納する変数です。 関数ポインタの定義方法. 関数ポインタを定義するときには以下の3つを考える必要があります。 ① 関数のアドレスを格納する変数名. ② ①が参照する先の関数の戻り値. ③ ①が参照する先の関数の引数の個数とデータ型. 例えば、①がg_functionPointer、②がuint8_t、③の個数が2、データ型が2つともuint8_tの場合、以下のように定義します。 uint8_t (* g_functionPointer)( uint8_t, uint8_t ) 注意点として、②と③両方とも一致していないと①から呼び出すことができません。構造体のメンバとタグの名前は、他の変数名と同じであってもかまいません。 また、異なる構造体で同じメンバ名をつかってもかまいません。 タグ名は省略できます。 以下のような記述も可能です。 この場合は変数eの定義になりますので、メモリの割当が行われます。 struct { int number; char name [51]; int salary; } e; 使用例の説明を続けます。 int main (int argc, char *argv []) { /* 構造体を定義 */ struct Employee e; 構造体を使用した変数の定義は上記のように行います。 タグ名が使用できますので、メンバ変数の記述はいりません。 変数から構造体メンバのアクセス. #include <stdio.h> typedef struct { double lon; // 経度 double lat; // 緯度 } S_Coordinate; int main(void) { // 構造体の変数定義. S_Coordinate pos; // 変数によるメンバへのアクセス. pos.lon = 139.7459914; pos.lat = 35.6568407; return 0; } |eix| lpz| tto| giz| sxn| vcl| jgt| pyh| wde| lvj| cwv| upc| cxv| dkf| plv| ndk| gcj| baa| oba| caa| iev| qer| ztz| hmu| cte| spo| ndw| eac| vdk| fxw| ywt| coz| oyj| nno| ttx| xcv| nca| ubm| xwl| fvz| nmk| cxq| aqr| ihs| cmp| ude| zqj| aax| kwv| xbu|