Table des matières:
- Utilisez le caractère de tabulation
- Mise en évidence de la syntaxe
- Code source formatter
- Abréviations du code
- Par exemple, dans le programme Budget5 qui est inclus avec le matériel téléchargeable de Dummies. com, si vous entrez
- Il y a cependant quelques petites choses (en fait, pas mal de choses) que le compilateur GNU C ++ corrigera et continuera sans commentaire, si vous le voulez. Par exemple, ce n'est pas une erreur de définir une variable dans une fonction et de ne jamais l'utiliser. Ou de mettre un retour au milieu d'une fonction pour que les lignes de code après le retour ne puissent jamais être exécutées. Ce ne sont pas des erreurs, mais ils semblent vraiment bizarre à un compilateur méfiant.
- Vous pouvez créer plus facilement une cible de génération de débogage et une cible de génération de version lorsque vous créez le projet - laissez l'assistant effectuer tout le travail pour vous. Cependant, il arrive très souvent qu'après des semaines de travail et de débogage sur un projet, vous n'alliez le libérer que pour constater qu'il n'y a pas de cible de génération de version. Ne vous inquiétez pas, vous pouvez toujours créer une nouvelle cible de construction par vous-même.
- Considérons l'exemple trivial et complètement composé (mais intelligent) suivant:
- Pour désactiver les informations de débogage dans la cible de version Release, sélectionnez Projet → Options de construction, puis sélectionnez la cible Release sur la gauche. Assurez-vous maintenant que l'option Produce Debugging Symbols [-g] est désactivée pour la cible Release. (C'est le bon moment pour vous assurer que cette même option est cliquée pour la cible de construction Debug.)
- Sélectionnez Projet → Définir les arguments des programmes.
Vidéo: COMMENT CODER PROPREMENT ? 10 ASTUCES CLEAN CODE 2024
Code:: Les blocs sont fournis avec les paramètres par défaut les plus naturels pour la plupart des applications C ++; Cependant, comme vous commencez à passer de plus en plus de temps dans l'environnement, vous pouvez trouver que Code:: Les blocs peuvent être un endroit plus convivial avec seulement quelques modifications.
Utilisez le caractère de tabulation
ou, plus spécifiquement, n'utilisez pas de caractère de tabulation. Ce paramètre ne fait aucune différence si vous travaillez sur un projet dans lequel tout le monde utilisera toujours Code:: Blocks. Le problème avec les caractères de tabulation, cependant, est que différents éditeurs ont tendance à interpréter les onglets différemment. Certains éditeurs déplacent le curseur jusqu'à l'arrêt de tabulation suivant, certains éditeurs déplacent le curseur sur un certain nombre de caractères et tous les éditeurs ne sont pas d'accord sur le nombre de caractères à allouer pour un onglet. Heureusement, tous les éditeurs interprètent les espaces de la même manière, il est donc beaucoup plus sûr de dire au code:: Bloque l'éditeur pour qu'il utilise toujours des espaces et n'enregistre jamais les onglets dans les fichiers source. Pour ce faire, sélectionnez Paramètres → Editeur. Maintenant, sélectionnez Paramètres généraux sur la gauche et assurez-vous que l'option Utiliser le caractère TAB n'est pas cochée.
Mise en évidence de la syntaxe
La mise en évidence de la syntaxe modifie les couleurs de différents types de structures, en utilisant une couleur pour les mots-clés, une couleur différente pour les noms de variables, etc. Ceci est très utile pour éviter les erreurs stupides que vous tapez. Par exemple, si vous avez mal orthographié un mot-clé, il n'apparaîtra pas dans la couleur du mot-clé. Pour activer cette fonctionnalité, sélectionnez Paramètres → Editeur → Mise en évidence de la syntaxe. Normalement Code:: Les blocs peuvent indiquer la langue à partir de l'extension du nom de fichier. Si vous utilisez une extension de fichier non standard, assurez-vous de l'ajouter à la liste en sélectionnant Filemasks. En outre, vous pouvez ajuster les options de mise en évidence de la syntaxe à partir de cette fenêtre pour mieux répondre à vos besoins. Ceci est particulièrement important si vous avez une forme de problèmes de vision, en particulier toute forme de daltonisme.
Code source formatter
Cela peut être démodé, mais un bon programmeur devrait montrer un peu de fierté dans l'apparence de son code. Cela nécessite la création et l'adhésion constante à une norme de codage. Encore plus que cela, lorsque vous travaillez sur une grande équipe, tout le monde devrait utiliser la même norme de codage. Dans le cas contraire, le code a l'air désordonné, car les modules écrits par une personne ont un aspect unique alors que ceux écrits par un coéquipier ont un aspect différent - très peu professionnel.
Forcer le respect d'une norme de formatage de codage est facile dans Code:: Blocks. Son éditeur de code va reformater votre code pour l'adapter à n'importe quelle norme désirée.
Le code:: Bloque le formateur de code source qui ne règle pas les noms de variables. Pire encore, cela ne touchera pas à la logique de votre programme. Donc, si vous écrivez du code crummy, ne le blâmez pas sur l'éditeur Code:: Blocks.
Sélectionnez Paramètres → Editeur, puis sélectionnez Source Formatter dans la liste qui apparaît pour obtenir une fenêtre qui ressemble à la Figure 1. La fenêtre d'aperçu vous montre à quoi ressembleront vos choix en pratique. Cet exemple suit la norme ANSI, mais vous pouvez choisir parmi de nombreuses autres normes communes, ou vous pouvez sélectionner Personnalisé puis cliquer sur les onglets Indentation et Mise en forme pour créer votre propre standard.
Figure 1: La configuration du formateur de code source peut vous aider à appliquer un style de codage uniforme.Une fois que vous avez sélectionné une norme, l'éditeur essaie de vous convaincre d'utiliser cette norme. Par exemple, si vous entrez if (true) , puis appuyez sur Entrée, l'éditeur placera le curseur à l'emplacement en retrait au-dessous de si . Si vous entrez ensuite une accolade ouverte, l'éditeur vous sauvegardera, placez l'accolade en ligne avec i dans si , passez à la ligne suivante, et indent sur.
Encore mieux, une fois que vous avez terminé le codage, si vous sélectionnez Plug In → Code source Formatter (AStyle), l'éditeur passera en revue votre module et réappliquera le code source actuel. Donc, si votre collègue de travail n'était pas aussi prudent avec sa programmation que vous l'avez été, ne vous inquiétez pas - quelques clics de souris et tout est nettoyé.
Abréviations du code
C'est une option étrange. Si vous codez beaucoup (lisez: beaucoup ! ), les abréviations de code peuvent vous faire gagner du temps, surtout si vous n'êtes pas une très bonne dactylo. Les abréviations de code vous permettent d'entrer un mot de code, puis appuyez sur Ctrl + J, et voila, l'éditeur Code:: Blocs va entrer le modèle prédéfini correspondant que vous remplissez.
Par exemple, si vous entrez > class dans la copie de Code:: Blocks, puis saisi Ctrl + J, Code:: Blocks vous demandera d'abord le nom de votre classe, puis remplira tout ce qui est montré dans la Figure 2. < Figure 2: L'utilisation de l'abréviation de code source peut vous faire gagner beaucoup de temps si vous pouvez vous souvenir de l'utiliser! Code:: Les blocs sont fournis avec un ensemble d'abréviations déjà définies, mais vous pouvez ajouter toutes les abréviations souhaitées en choisissant Paramètres → Editeur, puis en sélectionnant l'option Abréviations sur le côté gauche de la fenêtre.
La bonne chose à propos de l'abréviation de code est qu'il peut économiser beaucoup de frappe et applique automatiquement la norme de formatage de code source que vous sélectionnez. Une dactylo très rapide (ou serait-ce un clavier?) Peut ne pas tirer grand chose de cette fonctionnalité, mais si vous n'utilisez pas les dix doigts lorsque vous tapez ou si vous êtes simplement lent sur le clavier, vous voudrez probablement essayer fonctionnalité.AutoComplete
Code:: Blocs a cette fonctionnalité cool appelée saisie semi-automatique. Après avoir tapé un nombre minimum de lettres (la valeur par défaut est quatre, mais vous modifiez cela), si vous faites une pause dans votre frappe, Code:: Les blocs rechercheront toutes les choses qui commencent par ces lettres.De cette façon, Code:: Les blocs peuvent anticiper ce que vous essayez de dire.
Par exemple, dans le programme Budget5 qui est inclus avec le matériel téléchargeable de Dummies. com, si vous entrez
Acco
et que vous faites une pause d'une demi seconde (ce n'est pas très long!), une fenêtre apparaît comme illustré dans la Figure 3 qui offre les deux seules choses que Code:: Blocks connaît ce programme qui commence par Acco: la classe Account et le typedef AccountPtr . Puisque vous vouliez dire Compte , vous pouvez simplement appuyer sur Entrée et ça va remplir ça pour moi. Figure 3: Code:: Les blocs ne trouvent que deux correspondances pour Acco dans ce programme. Le premier est ce que je cherchais. Dans cet exemple, vous créez un pointeur sur un
compteappelé pAcc . Lorsque vous tapez pAcc -> , puis faites une pause, Code:: Blocs ouvre une fenêtre listant les membres publics du compte comme indiqué dans la Figure 4. Figure 4: Étant donné un objet, Code:: Les blocs trouveront les membres publics accessibles depuis cet objet. Ceci est une caractéristique intéressante lorsque vous faites référence à vos propres classes. Plus que tout, la sélection dans la liste signifie que vous ne tapez pas le nom de la fonction incorrect ou mal orthographié.
Cette fonctionnalité devient vraiment intéressante lorsque vous entrez un objet défini dans une bibliothèque. Par exemple, si vous entrezcout., vous obtiendrez une liste des membres publics disponibles pour l'objet cout . Cela peut être très utile lorsque vous n'avez pas de documentation ou que vous ne savez pas par où commencer. Activer tous les avertissements L'activation de tous les avertissements est une évidence. Les erreurs qui apparaissent au moment de la compilation sont beaucoup plus faciles à trouver (duh!) Et à corriger que celles que vous devez aller chercher vous-même au moment de l'exécution. C'est pourquoi la syntaxe C ++ est si pointilleuse - elle veut s'assurer que vous avez codé exactement ce que vous aviez prévu avant de s'éteindre et crée un exécutable qui fait quelque chose de complètement différent.
Il y a cependant quelques petites choses (en fait, pas mal de choses) que le compilateur GNU C ++ corrigera et continuera sans commentaire, si vous le voulez. Par exemple, ce n'est pas une erreur de définir une variable dans une fonction et de ne jamais l'utiliser. Ou de mettre un retour au milieu d'une fonction pour que les lignes de code après le retour ne puissent jamais être exécutées. Ce ne sont pas des erreurs, mais ils semblent vraiment bizarre à un compilateur méfiant.
Le compilateur GNU générera un avertissement s'il voit l'un de ces deux cas ou l'une des dizaines d'autres constructions suspectes dans votre code. Vous devriez passer en revue tous les avertissements pour vous assurer que vous comprenez de quoi le compilateur se plaint et pourquoi. Essayez de résoudre le problème si vous ne pouvez le comprendre, même si vous choisissez de ne pas le réparer.
Les avertissements révèlent beaucoup d'erreurs qui sont sur le point de devenir des bogues dans vos programmes.
Création d'une nouvelle cible de génération
L'environnement Code:: Blocs vous permet de créer plusieurs cibles de construction. Une cible de génération vous permet de créer un exécutable distinct avec des paramètres de construction uniques.Par exemple, vous voudrez certainement inclure des informations sur les symboles dans l'exécutable que vous utilisez pour le débogage, mais pas dans celui que vous avez l'intention d'expédier aux clients (voir ci-dessous pour en savoir plus).
Vous pouvez créer plus facilement une cible de génération de débogage et une cible de génération de version lorsque vous créez le projet - laissez l'assistant effectuer tout le travail pour vous. Cependant, il arrive très souvent qu'après des semaines de travail et de débogage sur un projet, vous n'alliez le libérer que pour constater qu'il n'y a pas de cible de génération de version. Ne vous inquiétez pas, vous pouvez toujours créer une nouvelle cible de construction par vous-même.
Pour créer une nouvelle cible de construction, sélectionnez Projet → Propriétés, puis sélectionnez l'onglet Construire les cibles. Vous verrez quelque chose qui ressemble à la figure 5, qui montre le programme Budget5 avec une seule cible de construction Debug.
Figure 5: L'une des propriétés du projet est la liste des cibles de construction.
Procédez comme suit pour créer une cible de génération de version:
Sélectionnez la cible de débogage et cliquez sur Dupliquer.Entrez le nom de la nouvelle cible de construction, Libérer.
-
Changez le nom du fichier de sortie en binReleaseBudget5. exe et le répertoire de sortie des objets à objRelease.
-
Cliquez sur Options de construction pour définir les options de construction que vous souhaitez pour cette cible particulière et cliquez sur OK.
-
Vous souhaiterez définitivement désactiver les informations sur les symboles et activer l'optimisation.
-
Cliquez sur OK pour enregistrer la nouvelle cible de construction.
Pour créer une cible de génération particulière, sélectionnez Créer → Sélectionner la cible, puis choisissez parmi les cibles disponibles. Cela dirige Code:: Blocs quant à l'exécutable que vous souhaitez créer lorsque vous sélectionnez build.
-
Projet - activer les optimisations
Vous pourriez penser que chaque ligne de code C ++ génère un ensemble d'instructions machine sans tenir compte des lignes de code qui l'entourent, et en mode non optimisé, vous auriez raison. L'optimiseur intégré au compilateur GNU peut générer un programme plus efficace à partir de votre source C ++ en regardant plusieurs lignes de code.
Considérons l'exemple trivial et complètement composé (mais intelligent) suivant:
// i ++; MOV EAX, i [BP] INC EAX MOV i [BP], EAX // fn (i) MOV EAX, i [BP] PUSH EAX CALL FN
Ici, la ligne
i ++
a été convertie en trois lignes de code machine qui suivent: Charger la valeur de i
-
dans le registre EAX. Incrémente le registre EAX. Mémorisez la valeur incrémentée dans
-
i
-
. La ligne suivante convertit l'appel fn (i)
en ce qui suit. Charger la valeur de i
-
dans le registre EAX. Poussez la valeur de EAX sur la pile. Passez l'appel.
-
Notez que l'étape 4 est réellement inutile. Il n'est pas nécessaire de charger la valeur de
-
i
dans le registre EAX car la valeur est déjà présente aux étapes 1, 2 et 3. Même un optimiseur médiocre remarquerait ce fait et ne générerait pas le second MOV EAX, i [BP] . Ce n'est pas beaucoup d'économies, mais cet exemple est facile à comprendre, même si ce n'est pas une grande amélioration. Vous aurez besoin d'être un vrai whiz au langage d'assemblage pour comprendre la plupart des optimisations que le compilateur GNU fait. Vous pouvez activer les optimisations pour une construction particulière en sélectionnant Projet → Options de construction, puis en sélectionnant la version Release à gauche et en sélectionnant l'une des options d'optimisation.
Techniquement, il existe plusieurs options d'optimisation car l'optimiseur peut prendre beaucoup de temps. Si vous avez un très gros projet, il ne sert à rien de passer beaucoup de temps à optimiser un module qui ne sera pas exécuté très souvent. Pour les projets de petite et moyenne taille, activez simplement l'optimisation complète - vous ne remarquerez pas les quelques secondes supplémentaires nécessaires à la compilation.
Vous pouvez activer cette option pour toutes les générations en sélectionnant Paramètres → Compilateur, puis en sélectionnant l'onglet Compilateur et en sélectionnant l'un des cas Optimiser; Cependant, ce n'est pas une bonne idée. N'activez pas l'optimisation dans la version de débogage du projet si vous envisagez d'utiliser le débogueur. Les modifications apportées au code effectué par l'optimiseur font apparaître le programme dans une marche semi-aléatoire lorsque vous tentez de le parcourir.
Projet - désactiver les symboles du débogueur
Les informations sur les symboles sont incluses dans l'exécutable uniquement pour l'utilisation du débogueur. Cette information ne devrait pas être incluse dans la version que vous expédiez aux utilisateurs: Elle augmente inutilement la taille de l'exécutable et, pire encore, elle libère des informations dangereuses pour les pirates si vous essayez de trouver une vulnérabilité dans votre programme.
Pour désactiver les informations de débogage dans la cible de version Release, sélectionnez Projet → Options de construction, puis sélectionnez la cible Release sur la gauche. Assurez-vous maintenant que l'option Produce Debugging Symbols [-g] est désactivée pour la cible Release. (C'est le bon moment pour vous assurer que cette même option est cliquée pour la cible de construction Debug.)
Projet - définir les arguments d'un programme
Certains programmes sont destinés à être exécutés avec des arguments de ligne de commande. Code:: Blocs fournit le mécanisme suivant pour fournir des arguments de ligne de commande lors de l'exécution d'un tel programme à partir de l'environnement Code:: Blocks:
Sélectionnez Projet → Définir les arguments des programmes.
Sélectionnez la cible de construction dans la fenêtre supérieure.
-
Entrez ce que vous voulez dans la fenêtre Arguments du programme.
-
Sélectionnez OK pour fermer la fenêtre.
-
Lorsque vous entrez dans Start ou Run, Code:: Blocks fournit ces arguments à votre programme.