構造体のメンバを自作関数の引数とする時の方法がわかりません

構造体のメンバを自作関数の引数とする時の方法がわかりません struct status{ char hoge[9]; }status; このような構造体があります hr_name[9]を自作関数の引数としたい場合、 関数プロトタイプはどのように記述すればいいのでしょうか?

C言語関連2,091閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

このベストアンサーは投票で選ばれました

2

例えばint 型の値を返す hogef() と言う関数だとすると int hogef(char *s); のような感じでいいですよ。 追記 メンバhogeがchar型なので よく見ると構造体の宣言にはメンバ名がhoge[9] 文章にはhr_name[9]となってますがどっち?

2人がナイス!しています

その他の回答(2件)

0

例えば、こんな感じ? #include <stdio.h> #include <string.h> struct status { char hoge[9]; } status; void func1( struct status ss ); void func2( struct status *pss ); void func3( char str[] ); void func4( char *p ); int main( int argc, char *argv[] ) { strcpy( status.hoge, "test" ); func1( status ); func2( &status ); func3( status.hoge ); func4( status.hoge ); return 0; } void func1( struct status ss ) { printf( "%s\n", ss.hoge ); } void func2( struct status *pss ) { printf( "%s\n", pss->hoge ); } void func3( char str[] ) { printf( "%s\n", str ); } void func4( char *p ) { printf( "%s\n", p ); }

0

ストラクチャのtypedefされたポインタで受ける。もしくはvoid*で受けて関数内部でcastすればよいのでは?