0

私はCプログラミングクラスを受講していますが、私の課題の1つが教授のコンパイラで正しくコンパイルされませんでした。

私がコードを彼女に説明した後、私の教授は私に完全なクレジットを与えることになりましたが、私はansiCのみを使用するように要求しました。したがって、私の質問です。

これが私が使用したコードです。

    printf("The value of 2(%1$.1f)**3+3(%1$.1f)**2+4(%1$.1f) + 5 = %2$.1f\
     \n", y, x);

これがxcode4.5を使用した私のコンパイラ設定です http://i.imgur.com/KtMuSJd.jpg

これはansiCですか?か否か?そうでない場合は、厳密なansi Cに変更するにはどうすればよいですか?

また、apples printf(3)のマニュアルページの位置パラメータについても説明します。

http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man3/printf.3.html

「」

    Arguments are numbered starting at 1.
      If unaccessed arguments in the format string
     are interspersed with ones that are accessed the results will be indeterminate.

「」

4

1 に答える 1

2

いいえ、これはANSI Cではなく、C99でもありません。これはPOSIX拡張機能です。ANSI Cは、出力される引数の順序を変更するためのメソッドを提供していません。特定のケースでは、引数を複数回渡す必要があります。

printf("The value of 2(%.1f)**3+3(%.1f)**2+4(%.1f) + 5 = %.1f\n", y, y, y, x);
于 2013-02-23T23:39:34.340 に答える