自分の力不足を感じるとき……人に理解できるように説明出来ないこと。
違うプロジェクトのベテランの方から「CH3COOHさん、ちょっと見てもらえない?」とコードを見せられました。
void funcA(void)
{
char szStartParm[] = "App2:enNormalStart"
strArgParmInfo parmInfo;
parmInfo.pszArgParm = szStartParm;
parmInfo.nParmSize = sizeof(szStartParm);
}
void funcB(void)
{
strArgParmInfo parmInfo;
printf("%s %d", parmInfo.pszArgParm, parmInfo.nParmSize);
}
新人の子(開発経験4ヶ月目)が書いたコードでした。どうやら新人の子はデバッグの為にfuncAで設定した値をfuncBでログ出力したいみたい。
曰く、「strArgParmInfo parmInfoという同じ変数を使っているのに、きちんと設定した値が出力されない。でもVCでステップ実行したらccccccときちん値は入ってる。」とのこと。
Cでは同じ型の同じ変数名にしても値は共有されないこと、タスクのスタック領域、スコープの概念を丁寧に説明していましたが理解してもらえず、業を煮やしたベテランさんが「スコープを抜けたら値は消える。そう覚える!」でその場は解散になりました。
人を育てるって難しい(;つД`)