链接错误浮点格式未链接

时间:2015-10-29 05:37:17

标签: c floating-point emulation

#include<stdio.h>

void main()
{
    struct book
    {
        char name;
        float price;
        int pages;
    };

    struct book b[100];
    int i;

    for (i = 0; i <= 99; i++)
    {
        printf("\nEnter name price and pages");
        fflush(stdin);
        scanf("%c%f%d", &b[i].name, &b[i].price, &b[i].pages);
    }

    for (i = 0; i<99; i++)
        printf("\n%c %f %d", b[i].name, b[i].price, b[i].pages);
} 

最大的困境,如何通过添加一个函数来解决它,甚至不能调用该函数     即

linkfloat()
{
    float a = 0, *b;
    b = &a;
    a = *b;
}

如何通过添加函数声明和定义来消除这种歧义,甚至不在main函数中调用它?

1 个答案:

答案 0 :(得分:1)

大多数处理器没有配备float上的计算,因此为了获得更好的性能,计算机系统使用模拟器来执行与float相关的计算                              因为在某些情况下,即使存在对浮点的引用,但编译器没有检测到模拟器的需要,但是当遇到浮点数时,在模拟器中已经设置了一个标志以具有链接器(它结合了目标文件)产生可执行文件的链接,但现在由于编译器没有检测到Emulator的需要,因此我们得到Error-“浮点格式没有链接”。                                                          编译器未检测到仿真器需求的一种情况是在使用scanf接收浮点值时,因此我们在此处遇到此问题。                                                                   通过使用链接浮点函数,它可以为编译器提供浮点计算,编译器现在需要模拟器