-4

友人は、元の関数を変更printf せずにチェックする方法があると教えてくれました。void

しかし、私はあなたがそれを行う方法を見ることができません。

#include<stdio.h>

void test()
{
  int a = 1;
  int b = a;
}

main()
{
    printf("%d",test());    
}

私は得続けた

エラー: void 式の使用が無効です

それを行う方法はありますか?

4

2 に答える 2

7

あなたの編集から、関数を変更せずにこれを行いたいことがわかります。コンマ演算子を使用して、次の関数呼び出しを行うことができますprintf

#include <stdio.h>

void test()
{
    int a = 1;
    int b = a;
}

main()
{
    printf("%d\n", (test(), 0));

    // or even this, to be more explicit:
    printf("%s\n", (test(), "test() was called."));
}

コンマ演算子は、最初のオペランド (この場合は関数呼び出し) を評価し、結果を破棄してから、2 番目のオペランドを評価し、結果は式全体の結果になります。

于 2012-09-11T18:07:37.077 に答える
0

例として、メモリポインタをvoid関数に渡し、void関数が機能するかどうかを確認するために必要なデータをその関数に入力します。

void
test_funtion(bool *answer)
{
    answer = false;
    // do stuff
    if(error happens)
        return;
    answer = true;
    return;
}

printfを使用してプログラムに通知する方法がわかりません。自分自身のビジュアルロギングにprintfを使用する唯一の方法ですが、マシンは使用しません。

于 2012-09-11T18:10:30.097 に答える