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 :

Taille mémoire: short VS char


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    autodidacte
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Par défaut Taille mémoire: short VS char
    Bonjour,

    Qu'est-ce qui prend le plus d'octets : une variable char ou une variable short ?

    J'utilise MinGW sur WinXP (je sais c'est pas bien ).

    Merci d'avance.

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Billets dans le blog
    21
    Par défaut
    "le Standard C++ garantit la relation suivante : 1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)."
    http://fr.cppreference.com/w/cpp/language/types

    Ce qui est pas bien c'est de pas savoir se servir de google et de vouloir programmer pour un compilateur particulier

  3. #3
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 359
    Billets dans le blog
    2
    Par défaut
    Plus précisément, un char utilise un octet (au sens mot machine, sur architecture x86-64: 8 bits) et un short 2 octets (toujours au sens mot machine, 16 bits sur x86-64).
    Le gourou dicte la ligne (de commande) à suivre ...

    Penser à lire le Tutoriel Batch ou a consulter la FAQ Batch et ses contributions,
    ainsi que le Cour sur la ligne de commande et des scripts

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    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 835
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Ce qui n'est pas bien c'est surtout de ne pas chercher un minimum par soi-même plutôt que de venir sur le premier forum venu poser sa question à 2 balles qui aurait eu sa réponse en une seule ligne de code. Il ne t'est même pas venu à l'idée de faire un char x; short y; printf("%d/%d\n", sizeof(x), sizeof(y)) ???
    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]

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    C'est très bien MinGW ; XP c'est moins bien mais pas trop non plus. J'espère que c'est ça que tu voulais dire

    Ce qui n'est pas bien, c'est que tu n'aies pas trouvé tout seul. Soit en faisant un code pour tester (peut-être que tu ne savais pas comment faire, maintenant tu sais !), soit en allant sur Google.

    De mémoire, la norme C garantit que un char tient sur un byte et qu'un short tient sur au moins deux. Et non sur exactement 2 bytes comme le dit InitSreen, même si c'est quasiment toujours le cas sur une architecture 32 bits et sur PC en particulier. "L'équation" donnée par stendhal666 est valable aussi en C.

    De manière plus général, tu devrais utiliser des int si tu n'as pas de contraintes de tailles et c'est généralement le cas sur PC. Les int sont normalement de la taille naturelle du processeur et donc plus rapides.

  6. #6
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 784
    Par défaut
    Citation Envoyé par Bktero Voir le message
    De manière plus général, tu devrais utiliser des int si tu n'as pas de contraintes de tailles et c'est généralement le cas sur PC. Les int sont normalement de la taille naturelle du processeur et donc plus rapides.
    Oui, car de toute façon les shorts sont convertis en int avant toute opération les impliquant (et ensuite, éventuellement, en un autre type suivant les types présents dans l'opération) , et si assignation à un short il y a, il y a également conversion..

    A+

    Edgar;

  7. #7
    Membre actif
    Homme Profil pro
    autodidacte
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Ce qui n'est pas bien c'est surtout de ne pas chercher un minimum par soi-même plutôt que de venir sur le premier forum venu poser sa question à 2 balles qui aurait eu sa réponse en une seule ligne de code.
    Je ne suis pas d'accord, le but d'un forum et justement de venir chercher des infos quand on est à la ramasse. Sinon, à quoi serviraient les forums ?

  8. #8
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    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 835
    Billets dans le blog
    1
    Par défaut
    Ils servent à t'aider à trouver des solutions aux problèmes qui ne sont pas dans les livres. Tu aurais lu ne serait-ce qu'un seul livre de C déjà tu connaitrais la taille de tes types et tu connaitrais l'opérateur sizeof qui permet de récupérer cette taille dans un code pour l'utiliser. Et tu n'aurais alors pas été à la ramasse.
    Bref ils ne sont certainement pas là pour pallier à ta fainéantise...
    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]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [System] Récupération de la taille mémoire de son programme
    Par splend_f dans le forum Général Java
    Réponses: 13
    Dernier message: 02/04/2006, 03h24
  2. Taille mémoire JVM
    Par javaDev dans le forum Général Java
    Réponses: 3
    Dernier message: 15/03/2006, 17h52
  3. Objets et taille mémoire
    Par programan dans le forum C++
    Réponses: 4
    Dernier message: 15/09/2005, 14h08
  4. Réponses: 3
    Dernier message: 28/06/2005, 09h07
  5. [JVM] Connaitre la taille mémoire utilisé par les dif classe
    Par sur_uix dans le forum Général Java
    Réponses: 4
    Dernier message: 18/09/2003, 09h17

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