dopo i chiarimenti dell'ultimo post ho deciso di riscrivere la libreria usando le strutture e i campi di bit per rendere accettabile la loro dimensione

senza addentrarmi dello standard che ho deciso di usare per questa libreria

dalla main:strformat("100011");

nessun errore segnalato dal compilatore
la funzione non gira e questa parte ho verificato che e errata, errori con le strutture o altro?

codice:
// dichiarazione e definizione del tipo bin

typedef struct binary
               {
               char* mod;
               int sys: 2;
               int type: 4;
               int base: 4;
               int val: 1;
               }
bin;

bin strformat(char* unformat);

#include<stdio.h>
#include<conio.h>
main()
{
strformat("100011");
return 0;
}


bin strformat(char* unformat)
{
//dichiarazione variabili
int I,valid;
bin binario;
binario.mod="10010";
printf("%s",binario.mod);
valid=1;
I=0;
//definizione del modulo
if(unformat[0]=='0' || unformat[0]=='1') 1;
else if(unformat[1]=='0' || unformat[1]=='1') I=1;
else valid=0;
if (valid==1)
   while(unformat[I]=='0' || unformat[I]=='1')
      {
      binario.mod[I]=unformat[I];
     printf("%c",binario.mod[I]);
      I++;
      }
binario.mod[I]='\0';
while(!kbhit());
return 0;
}
EDIT scritto un codice piu verosimile