使用Linkfloat感到困惑

Gre*_*lin 4 c

今天,我正在阅读Let Us C(在Goodreads上)的结构.我对使用它有点困惑linkfloat().没有它的使用,我能够在具有浮点型数据成员的结构上编写程序.

我正在使用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
}*/
Run Code Online (Sandbox Code Playgroud)

这是链接:http:
//ideone.com/peL5q

即使没有使用linkfloat,程序也能正确编译和输出.那么它的用途是什么?

Pau*_*l R 7

linkfloat从Turbo C时代起,早期的英特尔CPU没有硬件浮点支持(20世纪80年代),而是依赖于需要链接到任何需要浮点支持的可执行文件的软件浮点库,这是不合时宜的.你不需要任何合理的现代x86 CPU和C编译器(过去20年左右的任何东西)都不需要这样的时代.我建议你放弃任何糟糕/过时的教科书或课程资料,但仍然提到这些东西(Kanetkar的书籍在一些印度大学仍在使用,在这方面特别糟糕)