Termite Postado Junho 9, 2015 Denunciar Share Postado Junho 9, 2015 ola gostaria de saber se é possível modificar,ou mapear um tipo primitivo como char,int,ou float atravez de um ponteiro de struct que tenha um campo de bits dentro? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 britivaldo Postado Julho 2, 2015 Denunciar Share Postado Julho 2, 2015 (editado) Sim! Independentemente da arquitetura, os sistemas atuais, tem um inteiro CHAR de 8 bits. Se mapearmos um a um em estrutura, e aplicamos cast é possível manipula-los individualmente. Veja como: /** @authr Mauro Britivaldo * License all free on edition and published */ #include <stdio.h> //MANUAL TRACE typedef struct byte byte; //Definido a nossa estrutura struct byte { //Mapeamos Bit a Bit com campos da mesma unsigned char b0: 1; unsigned char b1: 1; unsigned char b2: 1; unsigned char b3: 1; unsigned char b4: 1; unsigned char b5: 1; unsigned char b6: 1; unsigned char b7: 1; }; int main (void) { // char c_caracter; //Declaramos uma variável inteira byte *bt; //Declaramos um ponteiro da estrutura bt = (byte*) &c_caracter; bt->b4 = 1; //Manipulamos em baixo nível; bit a bit := |16| //Observe o resultado // printf ("Before: Show byte: %d\n", c_caracter); bt->b4 = 0; printf ("After: Show byte: %d\n", c_caracter); return 0; } Editado Julho 2, 2015 por britivaldo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Termite Postado Julho 5, 2015 Autor Denunciar Share Postado Julho 5, 2015 valeu cara Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Termite
ola gostaria de saber se é possível modificar,ou mapear um tipo primitivo como char,int,ou float atravez de um ponteiro de struct que tenha um campo de bits dentro?
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.