关于c语言的函数调用,我这里为什么会显示编译错误


#include <stdio.h>
int sign(int x);

int main() {
    int a;
    sign(a);
}

float sign(int x) {
    int x;
    scanf("%d", &x);
    if (x > 0)
        printf("sign(%d\n) = 1", x);
    else if (x == 0)

        printf("sign(%d\n) = 0", x);
    else
        printf("sign(%d\n) = -1", x);

    return 0;

}

a的值呢,而且你前后声明和定义不一样,前面int后面float