0

Quelle est la meilleure façon de déclarer des variables?Quelle est la meilleure façon de déclarer des variables?

1.

int i,j,k; 


2.

int i; 
    int j; 
    int k; 

Quelqu'un peut-il expliquer ce qui est la meilleure façon et pourquoi?

+0

Pas que ce soit important dans ce cas mais c'est sympa d'étiqueter votre question avec la langue que vous utilisez. – Tony

+0

Vous n'avez pas de langue spécifiée. Pour C/C++, je recommande les déclarations explicites pour annuler toute faute typedefs/define. Je trouve aussi la forme explicite beaucoup plus claire et compréhensible quand il s'agit de pointeurs. – stefan

Répondre

3

Ceci est finalement une question de goût personnel. Cela n'a pas d'importance pour le compilateur ou votre programme.

Si vous travaillez en équipe avec d'autres programmeurs, l'important est que vous respectiez leurs normes établies. Si vous conservez une base de code existante, suivez le style déjà défini dans la source. Sinon, vous êtes libre de prendre vos propres décisions sur la manière de formater votre code.


Personnellement, je préfère le second style. Cela me rend beaucoup plus clair quels sont les types de chaque variable. De plus, si vous travaillez en C ou C++ et en déclarant des pointeurs, il est important de garder à l'esprit que

int* i, j, k; 

sera que déclare i comme pointeur sur un int (voir this question pour une discussion plus approfondie). L'utilisation du second style de déclaration le rend totalement non ambigu, ce qui est toujours préférable pour une maintenabilité à long terme. Le montant que vous économisez en écrasant toutes les déclarations de variables sur une ligne ne me semble pas valoir le coup.

+1

+1 pour "maintenabilité à long terme" – Tony

+0

J'ai toujours détesté avoir les astérisques à côté du _type_ plutôt que le _identifier_, pour la raison exacte que vous avez indiquée. Les asteriks ont une affinité plus proche de l'identifiant que du type. Pourtant, c'est la bonne convention. Une idée pourquoi? –

+0

@ALevy: Il n'y a pas vraiment de convention "propre"; C'est aussi une question de style personnel. C programmeurs ont tendance à préférer l'astérisque à côté de l'identificateur, les programmeurs C++ ont tendance à préférer l'astérisque à côté du type. Je suppose que cela a quelque chose à voir avec leur expérience en programmation orientée objet, où le type est fondamentalement plus important. Un pointeur vers un int est un type complètement différent d'un int. J'ai abandonné argumenter sur quel style est "meilleur", et à la place je recommande simplement que toutes les variables de pointeur soient déclarées sur leur propre ligne. –

1

Il est une question de goût, il n'y a pas de différence dans la mesure où le compilateur est concerné

0

la première pourrait aider à la lisibilité et repérer facilement des variables dans la déclaration, surtout si vous n'utilisez pas IDE et le code est long en un seul fichier

0

Vous devez définir "mieux". Quand il s'agit de l'efficacité du programme, il n'y a pas de différence.

Si vous référant à un style, je crois qu'il est plus lisible et pratique pour permettre à chaque variable une ligne pour lui-même:
int i; // Holds the value of...
int j; // Iterator for...
int k; // Dummy for function()...

Cela vous donne également l'option Nice commentaires descriptifs pour chacun. Naturellement, cela se résume à votre goût (et à celui de votre équipe, comme l'a indiqué Cody) et aux conventions.

0

Dépend du niveau de lisibilité, de compréhensibilité et d'exhaustivité que vous souhaitez conserver dans votre code. Le premier type se qualifie bien en termes de compréhensibilité tandis que le deuxième s'adapte mieux en termes de lisibilité et d'exhaustivité.

De même que mentionné par @Code Gray, il peut être difficile d'utiliser la première syntaxe dans certaines langues si elle n'est pas utilisée avec précaution.

Habituellement, le premier type est toujours utilisé dans les boucles, mais dans les sections de déclaration, je préfère le second.En fin de compte, c'est votre choix et votre style que vous souhaitez adopter.

Questions connexes