Structures, unions... ? [Forums - Langage C]
Structures, unions... ? [Forums - Langage C]
Pseudo Pass se souvenir de moi     Créer un compte
ARTICLES et TELECHARGEMENTS ~ FORUMS ~ LIENS  
 
             
 
Recherche
 
   
 

Parcourir ce sujet :   1 Utilisateur(s) anonymes



« 1 2 (3)


Re: Structures, unions... ?
Pilier de la communauté
Inscrit:
27/09/2005 18:07
De Metz
Messages: 1354
Hors Ligne
Pour ce cas précis je ne pense pas car il y a vraiment risque de perte de donnée. Ca serait pareil en passant de double à float je pense.
Il doit y avoir moyen de paramétrer le niveau de warning ou quels sont les warnings qu'on veut éliminer, mais je ne le conseille pas.

Posté le : 06/05 21:27
Transférer la contribution vers d'autres applications Transférer


Re: Structures, unions... ?
Accro
Inscrit:
28/09/2005 14:02
De Catalunya (66)
Messages: 581
Hors Ligne
Citation :
mais je ne le conseille pas


Non effectivement je pense que c'est un danger. Je pensais peut-être qu'il existait une syntaxe capable de faire du cast et prouvant au compilateur qu'on est conscient de ce que l'on fait, par exemple mettre un U16 dans un U8.

Bon en tout cas merci pour ton aide, et aussi David.

Posté le : 07/05 11:37
Les octets s'envolent, les écrits restent !
Transférer la contribution vers d'autres applications Transférer


Re: Structures, unions... ?
Accro
Inscrit:
28/09/2005 14:02
De Catalunya (66)
Messages: 581
Hors Ligne
Bonsoir,

J'arrive à récupérer l'heure UTC par NTP et désormais, ma carte est dans les temps

Mais j'ai bien galéré depuis quelques jours. Autant la conversion des secondes en heure ne m'a pas trop embêté, autant j'ai manipulé ma structure dans tous les sens à tel point que j'en ai fait un cauchemard !

En effet, je me suis obstiné à déclarer ma structure dans 2 fonctions différentes, Send_NTP() et Recv_NTP(), avec juste un pointeur entre les 2. Tout ça pour économiser 48 octets dont seulement 4 contiennent les secondes si précieuses ...
A cause de petits soucis de mes buffer Rx et Tx partagés avec d'autre protocoles, je voulais créer la structure dans Send_NTP(), balancer mes données au serveur à partir de l'adresse pointeur octet par octet, récupérer le packet à jour du NTP en recréant la même structure dans Recv_NTP(), toujours à partir du pointeur.

Seulement voilà, et même si au fond je le sais, cette méthode de construire/détruire au sein d'une fonction, et même si le pointeur pointe toujours au même endroit, les données dans ma structure au moment de l'envoie étaient corrompues par le reste du programme ...

Bref je déclare donc ma structure en tant que variable globale. J'ai voulu tenter de mettre ces 2 fonctions dans une principale, afin de déclarer ma structure dans celle-ci, mais j'avais plus la foi.

Ma nouvelle question, est-il possible de déclarer dans une fonction, un tableau[48] avec un pointeur autre, et dans son collimateur la case tableau[0] ??

Ceci par exemple ne fonctionne pas puisque le tableau est fixe avec une autre adresse pour la case 0 :
extern U8 *p;
U8 tableau[48]

*
tableau = &p;


En fait ce serait de pouvoir déclarer un tableau provisoire à partir de l'adresse d'un pointeur existant avant ?

Bon désolé pour le pavé

Posté le : 13/05 00:13
Les octets s'envolent, les écrits restent !
Transférer la contribution vers d'autres applications Transférer


Re: Structures, unions... ?
Pilier de la communauté
Inscrit:
27/09/2005 18:07
De Metz
Messages: 1354
Hors Ligne
Non, en tout cas pas comme cela.
Quand tu fais: U8 tableau[48];
c'est comme si tu définissais un pointeur constant, donc impossible de modifier l'adresse de tableau.

La seule solution, c'est l'allocation dynamique, mais je doute que le compilateur l'autorise sur ces petits µContrôleurs.

Posté le : 13/05 00:59
Transférer la contribution vers d'autres applications Transférer


Re: Structures, unions... ?
Accro
Inscrit:
28/09/2005 14:02
De Catalunya (66)
Messages: 581
Hors Ligne
Oui bon écoutes, le principal c'est que cela fonctionne et que je dispose d'assez de RAM pour le reste.
En tout cas merci encore pour ton aide.

Posté le : 13/05 17:38
Les octets s'envolent, les écrits restent !
Transférer la contribution vers d'autres applications Transférer



 Haut   Précédent   Suivant
« 1 2 (3)



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Powered by XOOPS© The XOOPS Project
Contacter les administrateurs

Structures, unions... ? [Forums - Langage C]