#include #include struct myParam { char cType; int iNmbr; char pMsg[16+1]; }; typedef struct myParam myParam_t; /* 引数の構造体に値を設定する */ void setParam( char cType_in , int iNmbr_in , char* pMsg_in , myParam_t* param_out ) { printf( "set :addr:%p\n", param_out ); param_out->cType = cType_in; param_out->iNmbr = iNmbr_in; strcpy( param_out->pMsg, pMsg_in ); } /* 引数の構造体の内容を表示する */ void dspParam( myParam_t param ) { printf( "dsp :addr:%p\n", ¶m ); printf( "Type=%c Nmbr=%d Msg=[%s]\n" , param.cType , param.iNmbr , param.pMsg ); } /* 構造体のアドレスを表示する(テスト用) */ void dsp2Param( myParam_t *param ) { printf( "dsp2:addr:%p\n", param ); } int main( void ) { myParam_t param; printf( "main:addr:%p\n", ¶m ); setParam( 'A', 1, "apple", ¶m ); dspParam( param ); dsp2Param( ¶m ); setParam( 'B', 2, "bread", ¶m ); dspParam( param ); setParam( 'C', 3, "coffee", ¶m ); dspParam( param ); return( 0 ); }