bonjour,

J'ai une structure déclarée comme cela

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
typedef struct {
   unsigned char a;
   signed char b;
   unsigned int c;
   char myBuf[SIZE_BUF];
   signed int d;
} YOOO;
je voudrais pouvoir séparer en plusieurs la variable myBuf => et je veux que mon programme puisse continuer de compiler sans avoir à faire de modification dans mon programme

J'ai donc pensé à modifier ma structure en union:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
 
	typedef struct _myStruct {
		char sm;							
		char Buf1[20];
		char Buf2[SIZE_BUF - 1 - 20];
	} myStruct ;
 
typedef union {
    struct{
      unsigned char a;
      signed char b;
      unsigned int c;
      char myBuf[SIZE_BUF];
      signed int d;
   };
 
   struct{
      unsigned char a;
      signed char b;
      unsigned int c;
      myStruct myBufEx;
      signed int d;
   };
} YOOO;
=> normalement je dois pouvoir continuer à pouvoir utiliser ma structure comme avant a part que je peux en plus acceder aux éléments de .myBufEx qui sont stoqués au même emplacement mémoire que .myBuf[]

Pouvez-vous me confirmer que j'ai le droit de faire ça et que je n'aurais pas de problèmes (a priori ça compile) ?

Remarque, je code pour un petit microcontrolleur 8-bits