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 :

Syntaxe declaration tableau


Sujet :

C

  1. #1
    Membre averti
    Homme Profil pro
    Analyse syst�me
    Inscrit en
    Octobre 2023
    Messages
    16
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Analyse syst�me
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2023
    Messages : 16
    Par d�faut Syntaxe declaration tableau
    Bonjour � tous.
    Apr�s recherche, je n'arrive pas � trouver la r�ponse sur le net.
    Pouvez-vous me dire quel est la signification du | dans une declaration de tableau.
    Par exemple :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    const int volume[] = {100|10,100|10000};
    Merci d'avance

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 841
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 12 841
    Billets dans le blog
    1
    Par d�faut
    Bonjour
    Citation Envoy� par simooon Voir le message
    Pouvez-vous me dire quel est la signification du | dans une declaration de tableau.
    Par exemple :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    const int volume[] = {100|10,100|10000};
    Ce n'est pas sp�cifque aux tableaux, c'est un op�rateur "ou" bit � bit. 100|10 donne 110.
    Ceci dit, je vois mal la raison qui a amen� � �crire cette expression.
    Mon Tutoriel sur la programmation �Python�
    Mon Tutoriel sur la programmation �Shell�
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les diff�rentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre averti
    Homme Profil pro
    Analyse syst�me
    Inscrit en
    Octobre 2023
    Messages
    16
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Analyse syst�me
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2023
    Messages : 16
    Par d�faut
    Citation Envoy� par Sve@r Voir le message
    Bonjour

    Ce n'est pas sp�cifque aux tableaux, c'est un op�rateur "ou" bit � bit. 100|10 donne 110.
    Ceci dit, je vois mal la raison qui a amen� � �crire cette expression.
    Merci bien !
    C'est un codage qui apparait dans certain programmes pour cpu avr.
    Votre r�ponse va m'aider � comprendre pourquoi ils utilisent cette expression.

  4. #4
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  5. #5
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 648
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 648
    Par d�faut
    Bonjour Sve,

    Citation Envoy� par Sve@r Voir le message
    ...Ce n'est pas sp�cifique aux tableaux, c'est un op�rateur "ou" bit � bit. 100|10 donne 110...
    C'est de plus assez dangereux car cela laisse penser que 100 et 10 sont en binaire. Ici nous avons la chance qu'il n'y ait pas de bit commun entre 100 (0x64) et 10 (0x0A). et donc le r�sultat est similaire entre base 10 et base 2.

    Mais cela ne marche plus dans le cas de 1000 (0x3E8) et 100 (0x64) qui donne 1004 (0x3EC) car E couvre tous les bits de 6 (E | 6 = E).

    Cela ressemble � un pi�ge d'enseignant. C'est peut �tre le but.

    Salut

  6. #6
    Membre averti
    Homme Profil pro
    Analyse syst�me
    Inscrit en
    Octobre 2023
    Messages
    16
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Analyse syst�me
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2023
    Messages : 16
    Par d�faut
    Citation Envoy� par Guesset Voir le message
    Bonjour Sve,



    C'est de plus assez dangereux car cela laisse penser que 100 et 10 sont en binaire. Ici nous avons la chance qu'il n'y ait pas de bit commun entre 100 (0x64) et 10 (0x0A). et donc le r�sultat est similaire entre base 10 et base 2.

    Mais cela ne marche plus dans le cas de 1000 (0x3E8) et 100 (0x64) qui donne 1004 (0x3EC) car E couvre tous les bits de 6 (E | 6 = 6).

    Cela ressemble � un pi�ge d'enseignant. C'est peut �tre le but.

    Salut
    Merci pour cette remarque. Je me suis fait directement avoir effectivement en raisonnant directement en binaire, oubliant que �crit comme cela, on est en d�cimal...
    A ce propos, si je ne me trompe pas, la d�claration de variables initialis� directement en binaire n'est pas standard en C.
    Si mes infos sont vrais, je trouve �a dommage, bien desfois ou j'aurai pr�f�r� ecrire du par exemple

  7. #7
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 648
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 648
    Par d�faut
    Bonjour simooon,

    Citation Envoy� par simooon Voir le message
    A ce propos, si je ne me trompe pas, la d�claration de variables initialis� directement en binaire n'est pas standard en C.
    Non ce n'est pas standard. Il existe parfois des notations B01010011, mais en fait ce sont justes des constantes de type byte B00001010 = 10; souvent d�finies dans une �num�ration. Pour �viter d'en avoir trop, elles ne couvrent que les bytes ce qui en limite l'int�r�t.

    Une autre chose serait utile, me semble-t-il, serait l'existence d'un s�parateur comme "_" qui existe dans d'autres langages. A l'heure o� on manipule des nombres de plus en plus grands, pouvoir �crire 12_978_852_456 serait plus lisible que 12978852456 de m�me que 0xFA_09_AC_F1_55_71_5E_01 ou 0xFA09_ACF1_5571_5E01 au lieu de 0xFA09ACF155715E01.

    On peut toujours r�ver, mais il faut bien des sources d'erreurs

    Salut

  8. #8
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 841
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 12 841
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par simooon Voir le message
    A ce propos, si je ne me trompe pas, la d�claration de variables initialis� directement en binaire n'est pas standard en C.
    Si mes infos sont vrais, je trouve �a dommage, bien desfois ou j'aurai pr�f�r� ecrire du par exemple
    Tu n'as pas de binaire non mais tu as de l'hexad�cimal qui y est directement associ�. Parce 2^4=16 il suffit de convertir le binaire en prenant les digits 4 par 4 pour avoir l'hexa correspondant.
    Exemple ton 0b0101 donne directement 0x5 (que j'�crirais alors plut�t 0x05 pour bien montrer que je veux occuper 8 bits).
    Et m�me avec plus compliqu� comme 0b00101100101101 l� encore il suffit de d�couper 4 par 4 (en partant de la fin) ce qui donne 00 1011 0010 1101 et on traduit �a (presque) instantan�ment en 0x0b2d.
    Mon Tutoriel sur la programmation �Python�
    Mon Tutoriel sur la programmation �Shell�
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les diff�rentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Membre chevronn�
    Homme Profil pro
    tr�s occup�
    Inscrit en
    Juillet 2014
    Messages
    137
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : tr�s occup�

    Informations forums :
    Inscription : Juillet 2014
    Messages : 137
    Par d�faut
    Citation Envoy� par simooon Voir le message
    A ce propos, si je ne me trompe pas, la d�claration de variables initialis� directement en binaire n'est pas standard en C.
    Si mes infos sont vrais, je trouve �a dommage, bien desfois ou j'aurai pr�f�r� ecrire du par exemple
    Ce n'est effectivement pas du C standard, mais certains compilateur comprennent cette notation.

    C'est le cas de gcc :

    https://gcc.gnu.org/onlinedocs/gcc/B...constants.html

    c'est une extension au langage C propos�e par gcc.

  10. #10
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    M�me dans C++, � ma connaissance c'est un ajout r�cent genre C++17 (ou "r�cent" genre C++11).
    Edit: Il s'av�re que c'est C++14 qui l'a ajout�.
    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.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Declarer tableau de structure en extern
    Par PoZZyX dans le forum C
    R�ponses: 2
    Dernier message: 06/04/2010, 14h08
  2. fonction de declaration (tableau)
    Par Inh[Star]Noz dans le forum D�buter
    R�ponses: 9
    Dernier message: 09/11/2008, 21h50
  3. [HTML] Syntaxe pour tableau html
    Par torp44 dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 6
    Dernier message: 04/09/2008, 21h35
  4. Declaration tableau C++ CLI
    Par abbd dans le forum C++/CLI
    R�ponses: 1
    Dernier message: 26/07/2007, 10h53
  5. Declaration tableau sous Access 2000
    Par Tsatogua dans le forum Access
    R�ponses: 13
    Dernier message: 24/02/2006, 16h03

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