60

godzil
a écrit : Si tu parle par la des extention GNU, elle sont loin de faire l'uninimité du consorcium sur le C, le C99 a ajouter pas mal de truc au C mais aucune des extention GNu !!

Faux!
long long, constructeurs par transtypage, nombres complexes, tableaux de taille déterminée en temps d'exécution seulement, ... Tout ça, c'étaient des extensions GNU jusqu'en 1999, et ça fait partie du standard C99 maintenant.
Thibaut a écrit :
C'est dommage ! y'a des trucs vraiment excellents parmi les extensions GNU confus
Du genre les tableaux de dimensions indéfinies :
typedef struct
{
  short allocated;
  short used;
  SYM_ENTRY entries[];
} FATVAT;
Sans les extensions GNU ce serait impossible !

Ça, c'est une extension GNU par rapport au C90, mais c'est du C99 standard!
D'ailleurs, avec GCC 2.x, il fallait écrire SYM_ENTRY entries[0];. GCC 3.x suit la syntaxe ISO C99.
godzil a écrit :
ptet masi c super crade au nivo code !
et puis

SYM_ENTRY entries[];

reviens a ecrire

SYM_ENTRY *entries;
et apres c toi qui gere avec malloc/realoc etc..

Pas du tout. Avec la première déclaration, les données de la structure sont contigües!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

61

Ha non ! C'est con pour toi, mais la FAT du TIOS a cette structure :
typedef struct
{
  short allocated;
  short used;
  SYM_ENTRY entries[];
} FATVAT;

Et pas celle-ci qui n'a rien à voir :
typedef struct
{
  short allocated;
  short used;
  SYM_ENTRY *entries;
} FATVAT;

attention

Cette extension GNU est hyper-utile, je vois pas pourquoi ANSI la refuse !
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

62

Thibaut a écrit :
Ha non ! C'est con pour toi, mais la FAT du TIOS a cette structure :
typedef struct
{
  short allocated;
  short used;
  SYM_ENTRY entries[];
} FATVAT;

Et pas celle-ci qui n'a rien à voir :
typedef struct
{
  short allocated;
  short used;
  SYM_ENTRY *entries;
} FATVAT;

attention

En effet. (Cf. mon post à la fin de la page 2.)
Cette extension GNU est hyper-utile, je vois pas pourquoi ANSI la refuse !

Ils ne la refusent pas. Elle est dans le standard C99.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

63

Je répondais à Godzil.
On a répondu en même temps.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

64

sa reste sale quand meme de tte facon, une structure ui change de taille sans prevenir chez moi c sale
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

65

pffff n'importe quoi.
Alors la fonction realloc est sale, elle fait changer de taille les handles triso
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

66

un handle c pas une structure ! confond pas tout stp !

Et pi je parle en général, une structure qui se modifie (la taille) tte seul demande que le code soit "automodifiant" donc au final tu fini pas obtenir qq chose de sale... franchement a vouloir "simplifier" la vie des programmer, il finissent par faire des choses pas propres... :/

J'prefere largement faire un

SYM_ENTRY *entries;

que

SYM_ENTRY entries[];

au moins je control a 100% se qui se passe dans l'execution du programme.
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

67

Vous êtes obligés de passer par du self-modifying code pour gérer le SYM_ENTRY entries[] ou non ?

68

Mais non ! pas du tout ! il raconte des choses bizarres confus

Il n'y a absolument pas besoin de code auto-modifiant ! le changement de la taille de la structure se fait par un realloc tout con, comme pour n'importe quel handle.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

69

c invisible pour toi
mais si tu fait ta structure comme sa :

struct
{
int machin;
int truc[];
int chose
} toto;

Si tu change la taille de truc, sachant que normalement machin est avant truc, et truc avant chose dans la meme, tu croit que le compilo fait comment pour faire toto.chose ?

C invisible pour toi l'utilisateur/programmeur, mais sa passe par des choses "salles" pour en venir a bout
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

70

Les tableaux de taille indéterminée ne sont acceptés comme champs de structures qu'en fin de structure, et tu n'as pas le droit d'utiliser une telle structure de manière imbriquée dans une autre structure (sauf éventuellement à la fin de cette autre structure si le compilateur est gentil, mais il n'est pas obligé d'accepter selon le standard C99).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

71

Je crois que ta chose sale est totalement imaginaire. Du moins avec GCC tongue

Si une structure contient un tableau de dimension indéfinie, celui-ci ne peut pas être placé ailleurs qu'à la fin. Impossible de déclarer quoi que ce soit après.

De plus, ce genre de structures ne peut pas être déclaré en accès direct. On ne peut déclarer que des pointeurs sur ce genre de structures, les allouer en RAM quoi.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

72

(lol encore une fois on a répondu en même temps)
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

73

ben autent garder un pointeur standard alors, sa sert a rien
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

74

Bah ça produit un code un peu plus rapide et ça permet de n'avoir qu'un handle pour le tout.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

75

godzil> ça n'a rien de sale, il n'est juste pas possible de faire des tableaux de structures comme ça, mais c une particularité plus qu'une saleté embarrassed

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)