4

今日、私は Let Us C (on Goodreads ) で構造について読んでいました。の使用法について少し混乱していますlinkfloat()。これを使用しなくても、float 型のデータ メンバを持つ構造体にプログラムを書くことができます。

ideone オンライン コンパイラを使用してプログラミングしています。

int main()
{
    struct book
    {
            char name;
            float price;
    };
    struct book b;
    scanf("%c %f",&b.name,&b.price);

    printf("%c %f",b.name,b.price);
    return 0;
}

/*linkfloat()
{
    float a=0,*b;
    b=&a; //cause emulator to be linked
    a=*b; //suppress the warning: variable not found
}*/

ここにリンクがあります:
http://ideone.com/peL5q

を使用しなくてもlinkfloat、プログラムは正しくコンパイルおよび出力されます。それで、それはどのような目的に役立ちますか?

4

1 に答える 1

7

linkfloat初期の Intel CPU にはハードウェア浮動小数点サポートがなく (1980 年代)、代わりに、浮動小数点サポートを必要とする実行可能ファイルにリンクする必要があるソフトウェア浮動小数点ライブラリに依存していた Turbo C の時代からの時代錯誤です。合理的に最新の x86 CPU および C コンパイラ (過去 20 年ほどのもの) では、このような時代錯誤は必要ありません。そのようなことをいまだに言及している悪い/時代遅れの教科書やコース教材は捨てることをお勧めします (インドのいくつかの大学でまだ使用されているカネトカーの本は、この点で特に悪いです)。

于 2012-06-20T08:33:58.473 に答える