0

使用しているOSに応じて定数を定義したい。
そのような:

#include <stdio.h>

#ifdef _Win32        //Used for system("cls") command
#include <process.h>
#define CLEAR "system(\"cls\")"
#endif

#ifdef __APPLE__
#define CLEAR "system(\"clear\")"
#endif

int main()
{
   CLEAR;
}


#define CLEAR "system(\"clear\")Xcodeは、メイン関数内およびその内部 で式の結果が使用されていないことを示すエラーを表示します。

私はMacを使用しています。

4

3 に答える 3

2

使用する:

#define CLEAR system("clear")

いいえ

#define CLEAR "system(\"clear\")"

マクロ呼び出しが次のものに置き換えられるため、エラーが発生します。

"system(\"clear\")";

これは、次のような役に立たない式ステートメントです (式はここでは文字列です)。

0;   // valid but pointless
于 2013-02-08T16:37:31.790 に答える
0

主な機能をそのように変更してみてください。

int main()
{
    int rc;
    rc = CLEAR;
    return rc;
}

system()呼び出しの戻り値をキャッチして、それを使用する必要があります

于 2013-02-08T16:39:21.533 に答える
0
#define CLEAR system("clear")

そしてそうではない

#define CLEAR "system(\"clear\")"

コンパイラは、マクロ名をその内容で置き換える新しい C コード (プリプロセッサ コードと呼ばれる) を作成します。

したがって、この方法でマクロを定義すると:

 #define CLEAR "system(\"clear\")"

コンパイラによって生成された新しいコード (プリプロセッサ コード) を取得します。

int main()
{
    "system(\"clear\")";

}

コンパイラによって生成されたコード (プリプロセッサ コード) を次のように表示できます。gcc -E

于 2013-02-08T16:37:22.900 に答える