`short int` vs` int`
Dois-je la peine à l'aide de short int
au lieu de int
? Est-il utile de différence? Tout les pièges?
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Dois-je la peine à l'aide de short int
au lieu de int
? Est-il utile de différence? Tout les pièges?
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Ce que dit Ben. Vous allez effectivement créer moins de code efficace depuis, tous les registres de la nécessité de supprimer les bits de poids à chaque fois que les comparaisons sont faites. Sauf si vous avez besoin pour économiser de la mémoire parce que vous avez des tonnes, utilisez le natif d'entiers de taille. C'est ce que
int
est pour.EDIT: Ne pas même voir vos sous-question à propos de const. À l'aide de const intrinsèques types (int, float) est inutile, mais les pointeurs/références doivent absolument être const, le cas échéant. De même pour les méthodes de la classe.
court vs int
Ne vous embêtez pas avec
short
sauf si il y a vraiment une bonne raison, telles que la sauvegarde de la mémoire sur une foule de valeurs, ou conforme à une disposition de la mémoire requise par un autre code.En utilisant beaucoup de différents types d'entiers seulement introduit de la complexité et des possibilités de synthèse autour de bugs.
Sur les ordinateurs modernes, il pourrait également introduire inutile d'inefficacité.
const
Saupoudrer
const
généreusement partout où vous le pouvez.const
limite ce qui pourrait changer, rendant ainsi plus facile de comprendre le code: vous savez que ce beastie est ne va pas se déplacer, donc, il peut être ignoré, et de la pensée dirigée à plus utile/pertinent choses.De haut niveau
const
pour les arguments formels est cependant, par convention, omis, peut-être parce que le gain n'est pas suffisant pour dépasser l'ajout de verbosité.Aussi, dans une pure déclaration d'une fonction de niveau supérieur
const
d'un argument est tout simplement ignoré par le compilateur. Mais d'un autre côté, certains outils peuvent ne pas être assez intelligent pour ignorer, lors de la comparaison de pures déclarations de définitions, et une personne citée que dans un précédent débat sur la question dans le comp.lang.c++ groupe Usenet. Donc, cela dépend dans une certaine mesure, sur l'ensemble des outils, mais heureusement je n'ai jamais utilisé les outils que la place de quelque importance sur cesconst
s.Cheers & hth.,
Absolument pas dans les arguments de la fonction. Quelques conventions d'appel vont faire la distinction entre le court et de type int. Si vous êtes à la prise de géant tableaux vous pouvez utiliser
short
si vos données s'inscrit dansshort
pour économiser de la mémoire et de l'augmentation du cache de l'efficacité.La question est techniquement incorrect "dois-je utiliser
short int
?". La seule bonne réponse sera "je ne sais pas ce que vous essayez d'accomplir?".Mais voyons quelques scénarios:
Les gammes pour les entiers signés:
signed char
— -2⁷ – 2⁷-1short
— -21⁵ – 21⁵-1int
— -21⁵ – 21⁵-1long
— -231 – 231-1long long
— -2⁶3 – 2⁶3-1Il convient de noter ici que ces sont garantis plages, ils peuvent être plus importants dans votre mise en œuvre, et sont souvent. Vous avez aussi la garantie que la gamme précédente ne peut pas être plus grand que l'autre, mais ils peuvent être égaux.
Vous allez rapidement constater que
short
etint
ont en fait la même gamme garantie. Cela vous donne très peu d'incitation à l'utiliser. La seule raison d'utilisershort
compte tenu de cette situation devient de donner d'autres codeurs une allusion au fait que les valeurs seront pas trop grandes, mais cela peut être fait via un commentaire.Il est toutefois judicieux d'utiliser
signed char
si vous savez que vous pouvez adapter chaque valeur potentielle dans la gamme de -128 à 127.Dans ce cas, vous êtes dans une mauvaise position pour tenter de réduire la mémoire useage, et devrait probablement utiliser au moins
int
. Même s'il a la même portée queshort
sur de nombreuses plates-formes, il peut être plus grande, et cela va vous aider.Mais le plus gros problème, c'est que vous essayez d'écrire un morceau de logiciel qui fonctionne sur des valeurs, la gamme dont vous ne connaissez pas. Peut-être quelque chose de mal s'est passé avant, vous avez commencé à coder (lorsque les exigences ont été écrits jusqu').
Demandez-vous comment près de la frontière sont vous. Si nous parlons de quelque chose qui va de -1000 à +1000 et peut potentiellement changer à -1500 – 1500, puis par tous les moyens l'utilisation
short
. L'architecture spécifique peut pad de votre valeur, ce qui signifie que vous ne serez pas économiser de l'espace, mais vous ne perdrez rien. Cependant, si nous avons affaire à une certaine quantité qui est actuellement -14000 – 14000, et peut croître de façon imprévisible (c'est peut-être quelque valeur financière), alors ne pas simplement passer àint
allez à lalong
tout de suite. Vous perdrez un peu de mémoire, mais vous permettra d'économiser beaucoup de maux de tête attraper ces roll-over bugs.court vs int - Si vos données se fit dans un court, court. Économiser de la mémoire. Rendre plus facile pour le lecteur de savoir quelle quantité de données que votre variable d'ajustement.
utilisation de const - Grand, en programmation. Si vos données doivent être const puis le faire const. Il est très utile quand quelqu'un lit votre code.