Page 1 sur 1

Sizeof()

Publié : mar. 22/mars/2005 19:16
par Anonyme2
Sizeof accepte le nom de structure ou interface comme argument.
Ce qui fait que la valeur va être inscrite dans le fichier lors de la compilation.

Ca serait bien que cette commande accepte une chaine et retourne -1 si la valeur n'est pas trouvée et la taille si Ok

Publié : mer. 23/mars/2005 23:36
par filperj
Simple curiosité: dans quels cas est-ce que la valeur ne pourrait pas être trouvée ?

Publié : jeu. 24/mars/2005 6:17
par cederavic
filperj a écrit :Simple curiosité: dans quels cas est-ce que la valeur ne pourrait pas être trouvée ?
Faute de frappe, version d'un lib/dll anterieur etc...

Publié : jeu. 24/mars/2005 6:31
par Anonyme2
filperj a écrit :Simple curiosité: dans quels cas est-ce que la valeur ne pourrait pas être trouvée ?
Si par exemple j'ai une liste de noms de structures sous la forme de chaines (chaines ou tableau ou liste chainée)


C$ = "BYTE"

Debug SizeOf(BYTE) ;fonctionne

Debug SizeOf(C$) ;etc ne fonctionne pas

Publié : jeu. 24/mars/2005 9:59
par Le Soldat Inconnu

Code : Tout sélectionner

Debug SizeOf(C$) ;etc ne fonctionne pas
ça parait logique si comme je le pense, sizeof() n'existe plus dans le programme final.
il doit être convertit en constante car ce type de fonction est basé sur une liste de structure avec les tailles de celle-ci.

Fred, comment fonctionne SizeOf() exactement ? merci

Publié : jeu. 24/mars/2005 13:16
par Anonyme2
Le Soldat Inconnu a écrit :

Code : Tout sélectionner

Debug SizeOf(C$) ;etc ne fonctionne pas
ça parait logique si comme je le pense, sizeof() n'existe plus dans le programme final.
il doit être convertit en constante car ce type de fonction est basé sur une liste de structure avec les tailles de celle-ci.

Fred, comment fonctionne SizeOf() exactement ? merci
Oui, c'est surement ça puisque je crois que c'est transcrit en valeur à la compilation.

Mais si cette liste de structures est tenue (je le pense), il n'y a aucun problème pour retourner la valeur en dynamique qui serait dans une chaine.