- Cast de struct
+ Responder ao Tópico
-
Cast de struct
E ai galera, blza?
Eu estava estudava sockets em C e apareceu uma duvida e corri atras para esclarecer. Obtive muitas conclusoes.
Uma dessas conclusoes que cheguei foi em um "cast de struct". Gostaria de saber se realmente existe isso. Se eh possivel realizar um cast de struct?
Gostaria de trocar algumas ideias com alguem q saiba para ver se as minhas conclusoes e o meu raciocinio estah certo.
faloow
ateh+
[]´s
-
Cast de struct
Olá amigo..
Um struct não é um tipo em que pode ser feito
um cast. Isto acontece porque ele representa uma colecao
entao sua estrutura interna nao pode ser modificada para
nenhum tipo existente ja que relativamente struct não
é um tipo mas uma estrutura como um record.
Os casts só podem ser feitos entre tipos de dados definidos
como float, int, char etc...
Isso foi o que li em um artigo sobre tipagem de dados em c.
Se algúem souber algo diferente gostaria que postasse porque esta
é uma duvida bem interessante.
Espero que tenha ajudado.
[ Esta mensagem foi editada por: hez4el em 26-09-2003 10:50 ]
-
Cast de struct
e ai hez4el..
Fikei na duvida agora..mas uma duvida eh sempre saudavel para acrescentar algo e chegar a conclusoes.
eu posto aqui o que eu chamaria de "cast de struct" nao sei se essa seria a nomeclatura correta, abaixo segue o fonte.
#include <stdio.h>
struct teste{
char ip[10];
char ip2[10];
};
struct teste_principal{
char nome[30];
struct teste var;
};
int main(){
struct teste_principal fau;
char str[10];
printf("Digite algo:"<IMG SRC="images/forum/icons/icon_wink.gif">;
scanf("%s",str);
fau.var = *((struct teste *)str);
printf("%s -> tudo OK -> Aqui utilizamos (struct teste_principal *)str\n",(struct teste_principal *)str);
printf("%s -> tudo OK -> Aqui utilizamos fau.var = *((struct teste *)str)\n", fau.var.ip);
printf("%s -> ERRO -> Aqui utilizamos fau.var = *((struct teste *)str)\n\n", fau.var.ip2);
return 0;
}
faloow
-
Cast de struct
Kappalinux,
sem dúvida vc pode fazer o q vc chama de "cast de struct" e isto inclusive é bastante usado em sockets, não é mesmo? Via de regra os casts são muito poderosos e úteis e vc pode usá-los o máximo. O poder aparece principalmente usando ponteiros como vc fez no exemplo. Acho q vc não precisa esquentar muito, use, porque se não for possível dá erro de compilação.
-
Cast de struct
valeu fricardo..
vou ver o posso fazer com isso.
<IMG SRC="images/forum/icons/icon_wink.gif">
-
Cast de struct
valeu fricardo..
vou ver o posso fazer com isso.
<IMG SRC="images/forum/icons/icon_wink.gif">
-
Cast de struct
Esse chamado "cast de struct" é na verdade uma atribuição de ponteiro...
como pode ser feito com todos tipos do c e até com as funções.
Essa dúvida é bem interessante considerando que uma atribuição deste tipo pode teoricamente ser considerada cast.
Acho que o problema todo ficou na nomenclatura.
Valeu pela lição.
T+