IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Boutisme : comment définir l'orientation ?


Sujet :

C

  1. #21
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    Non Mac LAK, ce n'est pas l'usage que je remets en cause, c'est cette ligne :
    Le copier/coller, c'est le mal : la preuve avec cette ligne...

    Le paramètre d'origine était un entier 64 bits, j'ai oublié de virer le "&" en adaptant la fonction...

    Merci, la bonne ligne est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unsigned char* b = (unsigned char*)(toSwap) ;
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  2. #22
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par Mac LAK Voir le message
    Merci, la bonne ligne est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unsigned char* b = (unsigned char*)(toSwap) ;
    Tu utilises un void*pour la généricité mais tu castes un void*? je ne comprend pas la logique...
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  3. #23
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Ces cast sont optionnels pour le compilateur, car implicites, comme le montre ton code nicolas.sitbon.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  4. #24
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par nicolas.sitbon Voir le message
    Tu utilises un void*pour la généricité mais tu castes un void*? je ne comprend pas la logique...
    L'habitude : je n'affecte jamais un pointeur vers un autre type que void* sans le caster explicitement, du moins dans MON code. Et encore, ça m'arrive aussi de caster vers du void* !

    Ce que fait l'utilisateur est son problème : j'expose un paramètre "void*" pour montrer que je ne gère pas le type de la donnée, et que seule sa taille et son adresse m'intéressent. S'il veut "profiter" du fait qu'il n'est pas nécessaire de caster, aucun souci, mais en attendant je fais des casts explicites dans mon code histoire que le dev suivant ne s'étonne pas, par exemple, de voir un "struct machin*" casté vers un "int*" ou autre type fortement différent... Il n'est hélas pas rare qu'un cast implicite masque une erreur !

    Bref, la généricité, c'est pas totalement le but... La raison du "void*", c'est d'abord de dire "Le type n'a aucune importance".

    Pour illustrer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    char* ptr1 ;
    void* ptr2 ;
     
    ptr2 = ptr1 ;        // OK, c'est vers du void*, c'est générique, on laisse sans cast.
    ptr2 = (void*)ptr1 ; // Solution préférée : ça montre que je VEUX perdre l'information de type.
    ptr1 = (char*)ptr2 ; // Cast explicite, histoire de montrer que ce n'est PAS une erreur ou une confusion, et qu'à priori je sais ce que je fais.
    Cela parait un peu étrange, je le reconnais, quand il s'agit de casts entre pointeurs impliquant un void*. C'est juste la généralisation du principe qui m'évite d'affecter un "int" à un "char" en trouvant ça tout à fait normal et/ou en rajoutant des "#pragma warning(disable: 4244)"...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  5. #25
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Personnellement, j'ai la logique contraire: Si un cast explicite (surtout un cast C-style) peut être évité, alors évitons-le, réduisant la probabilité d'un cast explicite malheureux.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #26
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    La règle qui consiste à dire qu'il faut caster tous les pointeurs n'est pas, à mes yeux, une règle à conseiller, car elle a tendance à banaliser l'usage du cast, qui devrait rester quelque chose d'exceptionnel.
    En castant trop, on peut faire disparaitre des warnings qui pourraient être de vraies erreurs de programmation.

    Limiter au maximum le recours au cast me semblerait plutôt être la règle de base.

    Edit : croisement avec medinoc, avec qui je suis entièrement d'accord.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  7. #27
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Personnellement, j'ai la logique contraire: Si un cast explicite (surtout un cast C-style) peut être évité, alors évitons-le, réduisant la probabilité d'un cast explicite malheureux.
    Là, c'est un peu particulier : c'est une fonction de traitement "abstraite", je trouve donc normal d'avoir un cast explicite afin de transformer l'entrée en un paramètre de travail. Normalement, tu ne devrais en effet jamais avoir besoin de casts, et je te rassure, c'est le cas le plus souvent dans mon code. Mais quand je DOIS passer d'un type à un autre, c'est "cast explicite de rigueur" pour ma part.

    De plus, il est souvent impossible de faire autrement : soit tu fais un cast et ça marche, soit t'as un warning à la compilation... Et j'ai déjà eu un peu trop de bugs pénibles à trouver avec les casts implicites, notamment lors de changement de compilateurs et/ou de portage 16->32 bits (et oui, la norme, c'est joli, mais c'est loin d'être toujours respecté à 100%, surtout sur les vieux compilos...).

    Faut pas oublier, là, c'est du C, pas du C++ : pas de surcharge d'opérateur, pas de polymorphisme, le cast reste souvent le seul outil disponible (avec le truc hideux qu'est l'union "fourre-tout", mais c'est trop laid pour être utilisé).
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  8. #28
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par Mac LAK Voir le message
    soit tu fais un cast et ça marche, soit t'as un warning à la compilation...
    pas de warning si l'une des opérandes est un void*.
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  9. #29
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par nicolas.sitbon Voir le message
    pas de warning si l'une des opérandes est un void*.
    T'en as un en affectant un int à un char.

    Après, comme je l'ai précisé, y'a une nette différence entre utiliser cette généricité du void* en appelant une routine en mode "boite noire", et écrire la routine en question... Dans la routine, un cast montre aussi que l'on sait (à priori) ce que l'on fait en modifiant le type de la donnée.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  10. #30
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Citation Envoyé par Mac LAK Voir le message
    Dans la routine, un cast montre aussi que l'on sait (à priori) ce que l'on fait en modifiant le type de la donnée.
    Non, pour moi, il impose seulement au compilateur de se taire devant nos ordres... pas que ces ordres soient justifiés.
    Ne pas caster quand ce n'est pas nécessaire permet de lever les erreurs de typage... Ensuite seulement, le programmeur peut prendre la décision de transtyper
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  11. #31
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    Ne pas caster quand ce n'est pas nécessaire permet de lever les erreurs de typage... Ensuite seulement, le programmeur peut prendre la décision de transtyper
    Mouais, tu ne peux pas non plus toujours caster n'importe quoi en n'importe quoi via un seul cast, ce qui limite les erreurs de typage réellement débiles.

    Enfin, ça reste un point de vue, pour ma part je préfère caster explicitement (en accord avec la conception des modules bien entendu, pas juste "pour faire compiler") quand je le fais sciemment.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  12. #32
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Pour moi, ce n'est pas une préférence, c'est un choix argumenté.
    Il ne faut pas oublier qu'en règle général, on n'est pas seul sur un projet : une mauvaise habitude prise par l'un peut vite devenir une mauvaise habitude pour les autres. Il existe toujours plus de risque d'erreur à l'exécution en castant là où ce n'est pas nécessaire qu'en ne castant pas là où ce serait nécessaire.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  13. #33
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    Il existe toujours plus de risque d'erreur à l'exécution en castant là où ce n'est pas nécessaire qu'en ne castant pas là où ce serait nécessaire.
    C'est surtout un problème dans le code de haut niveau, c'est plutôt le cas inverse dans les routines. Là, c'est justement une routine...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  14. #34
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 112
    Points : 44
    Points
    44
    Par défaut
    Ça tombe bien, je comprends rien aux cast.

    Mais je comprends rien, non plus, à cette utilisation du void ; la FAQ ne va pas si loin, y a même pas inline ni register d'expliqué, dans cette FAQ...


    Ça me gêne d'utiliser un code que je ne comprends pas entièrement mais par contre, il marche parfaitement comme je le souhaitais (sans déclarer dans for).

    Merci nicolas.sitbon !

  15. #35
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par Nikolas Voir le message
    (sans déclarer dans for).
    Compile en C99, on est en 2009, ça fait 10 ans que la norme existe, faut s'y mettre un peu.
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  16. #36
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Désolé Mac LAK, mais je ne vois pas de rapport entre le niveau d'une fonction, et le besoin de transtyper (et j'ai bien parlé d'erreur à l'exécution).
    Pour moi, quelque soit le niveau d'abstraction, un besoin de transtypage est le reflet d'une erreur de conception/modélisation (qu'il soit bien clair que l'on a tout à fait le droit de faire des erreurs, du moment qu'on les justifie : donc que l'on explique dans le code pourquoi on réalise ce transtypage).
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  17. #37
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    donc que l'on explique dans le code pourquoi on réalise ce transtypage).
    Dans ce cas précis, il n'y a aucune raison. Les cas en C ou le transtypage est requis sont rare et bien connu, je reste convaincu, que moins il y a de ligne de code, moins il y a de bug, et même un simple transtypage peut engendrer des erreurs, qui plus est, difficiles à trouver.
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  18. #38
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Je voulais naturellement parler des transtypages qui sont nécessaires, pas ceux qui sont autorisés et implicitement acceptés (donc par exemple, de transtyper un pointeur de unsigned long en un pointeur de caractère).
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  19. #39
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    Désolé Mac LAK, mais je ne vois pas de rapport entre le niveau d'une fonction, et le besoin de transtyper (et j'ai bien parlé d'erreur à l'exécution).
    Pour moi, quelque soit le niveau d'abstraction, un besoin de transtypage est le reflet d'une erreur de conception/modélisation (qu'il soit bien clair que l'on a tout à fait le droit de faire des erreurs, du moment qu'on les justifie : donc que l'on explique dans le code pourquoi on réalise ce transtypage).
    Facile, pourtant... Regarde donc les prototypes de fonctions comme "fwrite", "send", "recv", etc. Le buffer est passé sous forme de "void*" pour être tranquille et y passer n'importe quoi, même si quelque part en interne le type est casté vers un autre type quelconque. Et tu t'en moque, la tripaille interne n'est pas de ton ressort en l'occurrence. Par contre, celui qui fait / maintiens la tripaille en question est bien obligé de gérer un type de temps en temps, et effectuera donc un cast. Dans le cas de ma fonction, j'ai besoin d'un accès octet par octet => cast. Et je laisse un void* en prototype pour simplifier la vie de l'utilisateur.

    Maintenant, regarde par exemple la boucle de réception (ou les fonctions d'émission) de la libpcap, qui n'utilisent QUE des "u_char*" comme type pour les buffers de données... Super, quand on veut recevoir / émettre des structures connues à l'avance, non ? Tu évites le transtypage comment ? Et là, c'est encore pire, c'est l'utilisateur qui doit caster !!

    Pour moi, l'erreur de conception, c'est plutôt de faire un cast implicite sans le mentionner... C'est quoi ? Une erreur ? Un oubli ? Une faille de conception ? Il faudrait encore plus le commenter qu'un cast explicite !
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  20. #40
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par Mac LAK Voir le message
    Pour moi, l'erreur de conception, c'est plutôt de faire un cast implicite sans le mentionner... C'est quoi ? Une erreur ? Un oubli ? Une faille de conception ? Il faudrait encore plus le commenter qu'un cast explicite !
    Si tu veux être en accord avec ce que tu dis là, tu vas devoir commenter aussi toutes les promotions entières implicites, on se rend bien compte que ça pas de sens ce que tu dis là.
    le fait de caster ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unsigned char * tab = (unsigned char *) to_swap;
    n'apporte strictement rien, puisque tout le monde sait à quoi sert un pointeur générique.
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

Discussions similaires

  1. [Netbeans] Comment définir CardLayout en variable?
    Par yoplaboom dans le forum NetBeans
    Réponses: 1
    Dernier message: 06/07/2005, 11h42
  2. Comment comment définir une clef primaire dans une table??
    Par nek_kro_kvlt dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/02/2005, 21h06
  3. Réponses: 8
    Dernier message: 20/12/2004, 15h14
  4. Comment définir la durée du Hint ?
    Par philobedo dans le forum Composants VCL
    Réponses: 3
    Dernier message: 29/04/2004, 10h48
  5. Comment définir le type matrice ?
    Par charly dans le forum Langage
    Réponses: 7
    Dernier message: 15/06/2002, 21h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo