Bonjour,
je suis en développement partagé pour un projet, et nous utilisons une structure globale dans l'archi de notre projet. Je ne peux donc qu'enrichir cette structure. Voici la structure à la base:
Pour le moment tout va bien, on instancie cette structure à l'init et on la remplit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 struct vuhfw_internal_data { struct vuhfw_active_logical_command active_logical_cmd; /* Active logical command */ enum DM_COMMON_VUHF_COM_MODE_NW last_stdby_mode_nw; /* TODO: en attente de passage du QoS de stdby NW à CTL */ enum DM_COMMON_VUHF_COM_MODE_W last_active_mode_w; /* Last active mode w */ enum DM_VUHFW_PRESET_MODE last_active_preset_submode; /* Last preset_submode */ enum DM_VUHFW_COMSEC_TYPE last_comsec_data_secure_selection; /* Last comsec data secure selection */ BOOL vuhfw_init_in_progress; /* Manage the initialization phase of the vuhf */ struct vuhfw_internal_data_radio_status radio_status; /* CBIT data */ UINT8 hq_wod_erase_retry_counter ; /* Retry counter for HQ WOD erase command */ etc.....
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 static const struct vuhfw_internal_data vuhfw_internal_data_init_values = { /* .active_logical_cmd */ { /* .timer_id */ 0, /* .index */ 0, /* .step */ 0, /* .status */ vuhfw_LOGICAL_CMD_STATUS_NONE }, /* last stdby mode nw */ DM_COMMON_VUHF_COM_MODE_NW_FF, /* last active mode w */ DM_COMMON_VUHF_COM_MODE_W_FF, /* last preset_submode */ DM_VUHFW_PRESET_MODE_FF, /* last comsec data secure selection */ DM_VUHFW_COMSEC_TYPE_PLAIN, /* .vuhfw_init_in_progress */ FALSE, /* CBIT data */ { /*. test_number */ 0, /* .lna_fault*/ FALSE, /* .hpa_fault*/ FALSE, /*. prev_test_number */ 0, /* .prev_lna_fault*/ FALSE, /* .prev_hpa_fault*/ FALSE, /*. test_number_timer_id */ 0, /* .lna_fault_timer_id*/ 0, /* .hpa_fault_timer_id*/ 0, /* .late_net_entry_timer_id*/ 0, /* .test_number_timer_is_activated */ FALSE, /* .lna_fault_timer_is_activated */ FALSE, /* .hpa_fault_timer_is_activated */ FALSE, /* .late_net_entry_timer_is_activated */FALSE, /* .alarm_status */ FALSE }, /* .hq_wod_erase_retry_counter */ 0U, etc .....
Bon. Il s'avère que je ne connais pas trop ce système d'init entière de la structure mais je dois m'y conforter. Le problème est que je rajoute ceci à la déclaration de ma structure:
C'est donc un tableau de structure, ces structures contenant elle meme une taille (length) et un autre tableau (block).
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 #define VUHFW_INTERNAL_DATA_MAX_GROUP_DATA_SIZE 97 #define VUHFW_INTERNAL_DATA_MAX_AFP_BLOCKS 128 /* AFP file groups */ struct vuhfw_internal_data_afp_blocks { UINT8 length ; CHAR block[VUHFW_INTERNAL_DATA_MAX_GROUP_DATA_SIZE]; }; struct vuhfw_internal_data { struct vuhfw_active_logical_command active_logical_cmd; /* Active logical command */ .......... /* J'ajoute ça : */ struct vuhfw_internal_data_afp_blocks vuhfw_afp_block[VUHFW_INTERNAL_DATA_MAX_AFP_BLOCKS]; /* Manage AFP blocks parsed from an AFP file */ };
Ma question: vue la taille des données, comment initialiser entièrement ce tableau de structures à 0 par exemple, en gardant la déclaration antérieure. Pour le moment j'ai fait ça:
Question1 : Est-ce que tout mon tableau de structures sera initialisé à zero ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 static const struct vuhfw_internal_data vuhfw_internal_data_init_values = { /* .active_logical_cmd */ { /* .timer_id */ 0, /* .index */ 0, /* .step */ 0, /* .status */ vuhfw_LOGICAL_CMD_STATUS_NONE }, etc ..... /* J'ajoute ça à la fin de mon init: */ { { 0 } }
Question2: Est-ce que ca me garantit aucun décalage dans le futur, c'est a dire que si quelqu'un d'autre rajoute un entier derrière ma déclaration, et l'initialise comme ça:
Ca va fonctionner, il y aura bien 8 dans son entier (aucun décalage) ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 { { 0 } } , /* Init de son entier : */ 8
Merci pour l'aide !!!
Partager