警告「値を返さないコントロールパスがあります」について。 – プログラミング – Home

警告「値を返さないコントロールパスがあ...
 
通知
すべてクリア

警告「値を返さないコントロールパスがあります」について。


いくみ
 いくみ
(@いくみ)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

16ビットコードから32ビットに移植した時に、
ここで「値を返さないコントロールパスがあります」という警告が出ました。
しかし、どのコードが戻り値を返してないのかよくわかりません。
どうしたら良いのか、教えていただけないでしょうか?

int dsv_MacFput01(char* pszInp,WORD wcnt)
{
if (strncmp(pszInp,AP102,sizeof(AP102)-1) == 0) {
sprintf(szCommBuff,%s %s %lu,szSFile,szDFile,Stat.st_size);
if ( dsv_FileSend(szCommBuff) == 0) {
RunTbl.macstatus=St_MacFput_Trans;
return Proc_Process;
}
else {
dsv_MacroReturn(CS200,RunTbl.connecttask);
return Proc_End;
}
}
else if (strstr(pszInp,RERAY STATION)!=NULL) {
/* #No.6 From */
#ifdef RS422
if (iTemp==TRUE) {
sprintf(szCommBuff,TEMPTR %s\r,szSFile);
dsv_Exec(szCommBuff,strlen(szCommBuff),RESP_REQ);
RunTbl.macstatus=St_MacFput_Temptr;
return Proc_Process;
}
else {
sprintf(szCommBuff,TEMPWR %s%
lu\r,szSFile,Stat.st_size);
dsv_Exec(szCommBuff,strlen(szCommBuff),RESP_REQ);
RunTbl.macstatus=St_MacFput_Tempwr;
return Proc_Process;
} /* #No.6 To */
#endif
}
else {
dsv_MacroReturn(pszInp,RunTbl.connecttask);
return Proc_End;
}
}


引用解決済
トピックタグ
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

RS422
これが定義されていない時の

else if (strstr(pszInp,RERAY STATION)!=NULL) {

のif節内ではないでしょうか。


返信引用
ん
 ん
(@ん)
ゲスト
結合: 23年前
投稿: 81
 

えーと、提示されている関数の戻り値の型は int なわけですけど
関数の最後に return で値をかえしてないからじゃぁないですか?


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

関数の最後ですね。
何事も無く最後まで処理が進んだ場合のreturnがありません。


返信引用
不良PG
 不良PG
(@不良PG)
ゲスト
結合: 23年前
投稿: 80
 

>関数の最後ですね。
>何事も無く最後まで処理が進んだ場合のreturnがありません。
ifブロックの最後がelseだからそこは問題ないのでは・・


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

いえ、RS422が定義されていないと最後まで行ってしまいますよ。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

ああ、
RS422のプリプロセッサで#elseを使ってreturn文を記述する方が正解なのかも。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました