使用Linkfloat感到困惑

时间:2012-06-20 08:20:34

标签: 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
}*/

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

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

1 个答案:

答案 0 :(得分:7)

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