Pessoal, estou com um pequeno probleminha no meu codigo.. 
Estou responsavel por fazer um Programa que lê um arquivo de texto e produz um relatório com a lista de palavras de 1 letra, 2 letras e assim por diante e que essa lista seja em ordem alfabetica. 
Outro fator importante e pedido é que para ler o arquivo, você deve programar a função LireMot. Esta função tem o protótipo: char * LireMot (FILE * myfile); Esta função retorna um ponteiro nulo quando o fim do arquivo é alcançado. Caso contrário, ele aloca um buffer que será lançado por você e que contém a palavra que foi lida. 
  
porem quando compilo meu codigo, tem um erro que não to conseguindo resolver. 
vocês podem me ajudar? 
  
  
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
 
 
extern char* LireMot(FILE*);
 
bool scanne(FILE* f, int taille)
{
    bool ultimo = true;
    bool vazio    = true;
    int comprimento_palavra;
    char* palavra = NULL;
    rewind(f);
    printf("palavra(s) de %d letra(s) :", tamanho);
    while ((palavra = LireMot(f)) != NULL)
    {
        comprimento_palavra = strlen(palavra);
        if (comprimento_palavra == tamanho)
        {
            puts(palavra);
            vazio = false;
        }
        else if (ultimo && comprimento_palavra > tamanho)
        {
            ultimo = false;
        }
        else
        {
            /* Rien */
        }
        free(palavra);
    }
    if (vazio)
    {
        puts("-nada !-");
    }
    return ultimo;
}
 
 
int main(void)
{
    bool ultimo = false;
    int tamanho = 1;
    FILE* f = fopen("teste.txt", "r");
    if (f != NULL)
    {
        do
        {
            ultimo = scanne(f, tamanho);
            tamanho++;
        }
        while (!ultimo);
        fclose(f);
    }
    return EXIT_SUCCESS;
}