2016-04-12 28 views
-3

成功のためにreturn 0、失敗のためにreturn -1という私のmainに4つの関数を呼び出します。いずれかが失敗した場合、私は次の関数を呼びたくないので、エラー文を出力して終了してください。c関数はエラーを返す - プログラムを終了する方法

どうすれば実装できますか?

int main(void) 
{ 
deviceSync(); 
deviceInit(); 
devicesettings(); 
devicetakemeasurement(); 
} 
+0

if/elseを知らなくても外部関数を書くことができますか? –

+0

OPがプログラミングを全く理解していないので、この質問を議論の対象外とすることに投票しました – KevinDTimm

答えて

1

あなたは、これは-1を返します関数が非ゼロ

編集返すとき

int main(void) 
{ 
    if(deviceSync())return -1; 
    if(deviceInit())return -1; 
    //... 
} 

機能ごとにif文を実行する必要があります。申し訳ありませんが、私は」shouldnをtはそこに「nots」を置いた

+0

'!deviceSync()'が本当に成功しました – timrau

+2

間違った答え... – 4386427

+0

あなたはブール値としてステータスコードを扱いますコードは理解しにくいです。 'if(deviceSync()!= 0){...}'ははるかに明確です。 – indiv

1

これはどういう意味ですか?

#define FAILURE -1 

int main() { 
    if (FAILURE == deviceSync()) { 
     fputs("Device Sync failed\n",stderr); 
     return EXIT_FAILURE; 
    } 
    if (FAILURE == deviceInit()) { 
     fputs("Device Init failed\n",stderr); 
     return EXIT_FAILURE; 
    } 
    if (FAILURE == devicesettings()) { 
     fputs("Device setting failed\n",stderr); 
     return EXIT_FAILURE; 
    } 
    if (FAILURE == devicetakemeasurement()) { 
     fputs("Device take measurement failed\n",stderr); 
     return EXIT_FAILURE; 
    } 

    return EXIT_SUCCESS; 
} 
+0

慣例により、Cプログラムは失敗時には事前定義された値 'EXIT_FAILURE'を返し、成功時には' EXIT_SUCCESS'を返します。 – alk

+0

しかし、これまで仕様に固執している唯一の答えである+1は、 '-1'に対して関数をテストしています! – alk

+0

@alkあなたは正しいです、更新されました(正しい方法でうまくいっています)。ありがとう。 –

関連する問題