Pessoal, consegui. Decidi organizar  com a struct numa biblioteca, as chamadas das funcoes em outra. e o restanta no main() principal. Vejam só:  //estru.h    struct Funcionario
{
    char sexo;
    int estCivil;
    int idade;
    float salario;
};
---------------------------------------
//Funções de chamada == chamada.h
#include "estrut.h"
void lerFuncionario (struct Funcionario *f)
{
    printf("*=*= CADASTRO DE FUNCIONARIOS =*=*\n\n");
    printf("INFORME O SEXO: \n\n");
    printf("\n F - FEMININO:  \n");
    printf("\n M - MASCULINO:  \n\n");
    scanf("%s", &(*f).sexo);
    printf("\nINFORME O ESTADO CIVIL: \n\n");
    printf("\n1 - SOLTEIRO \n");
    printf("2 - CASADO \n");
    printf("3 - DIVORCIADO \n");
    printf("4 - VIUVO \n");
    printf("5 - OUTROS \n\n");
    scanf("%d", &(*f).estCivil);
    printf("INFORME A IDADE: \n\n");
    scanf("%d", &(*f).idade);
    printf("INFORME O SALARIO: \n\n");
    scanf("%f", &(*f).salario);
}
float bonus (struct Funcionario f)
{
    if (f.sexo == 'm'|| f.sexo == 'M')
    {
        if (f.estCivil == 1 && f.idade < 30)
        {
            return f.salario * 0.25;
        }
    if (f.estCivil == 2)
       {
            return f.salario * 0.30;
       }
    }
    if (f.sexo == 'f' || f.sexo == 'F')
    {
        if (f.estCivil == 2 && f.idade < 40)
        {
          return f.salario * 0.30;
        }
        if (f.estCivil == 2 && f.idade >= 40)
        {
            return f.salario * 0.35;
        }
        if (f.estCivil == 1)
        {
            return f.salario * 0.25;
        }
    }
    else {
          printf("\n\nVOCE não POSSUI BONUS.");
          }
}
**********************
por fim, o main():
-----------------------------
#include <stdio.h>
#include <stdlib.h>
#include "chamada.h"
main()
{
    struct Funcionario funcionario;
    lerFuncionario (&funcionario);
    printf("\n\n\nO BONUS: R$ %.2f \n", bonus(funcionario));
    system("pause");
}