Muszę napisać program ukrywający tekst w pliku BMP. Rozumiem mniej więcej jaki jest algorytm tego zadania, staram się wzorować na zasobach znalezionych w sieci, jednak mam problem, ponieważ nie mogę się nigdzie dokopać do jakiegoś kodu napisanego w czystym języku C,a własnie tak to muszę napisać. Jedyne co udało mi się znalezc to C++, jednak tam program opiera się w dużej mierze na klasach. Próbuję przepisać te klasy na struktury, jednak mam z tym problemy. Natknął się ktoś może na ten program w C? Ew. proszę o pomoc.

struct bajt{
int Wartosc;
char Bity[100];
int LiczbaBitow;
}a,b,c,d;

void Binarnie(){

    int W;
    int l=0;
    W=a.Wartosc;

    do{
        if ((W % 2) == 0)
            a.Bity[a.LiczbaBitow-l-1]='0';
        else
            a.Bity[a.LiczbaBitow-l-1]='1';
        W/=2;
        l++;
    }while (l!=a.LiczbaBitow);
}

Utworzyłem strukturę która ma zawierać informację o bajtach. Później chce dokonać zmiany atrybutu na binarne wartosci.

void Zamien(a,b,c,d){

    Binarnie(a);
    Binarnie(b);
    Binarnie(c);
    Binarnie(d);

    for (int i=0;i<8;i++)
        a.Bity[i]=d.Bity[i];

    for (int i=0;i<8;i++)
        Bity[i+8]=c.Bity[i];

    for (int i=0;i<8;i++)
        Bity[i+16]=b.Bity[i];

    for (int i=0;i<8;i++)
        Bity[i+24]=a.Bity[i];

return;
}

Wyżej chce utworzyc 32 bitowa liczbe z bitow a, b, c, d. Jednak nie wiem, czy mogę w funkcji globalnej jako argument podać strukturę i jak przekazać poszczególne bajty do funkcji binarnie, w celu zmienia ich wartości.