|
|
|
|
Posté par
gnutator, le samedi 20 janvier 2007 à 19:15:41Configuration: Linux Epiphany 2.16
C'est quoi ce que tu appelles des conventions de codage ?
Pour moi la seule chose importante que ce soit codé proprement (indenté, avec des vrais noms de variables, des lignes pas trop longue (si possible < 80 caractères)), que ça compile, et si possible sans warning. gcc -W -Wall -o plop.exe plop.c Bonne chance |
salut,
tout a fait d'accord avec toi mamiemando... personnellement quel que soit le langage que j'utilise (c, c++, cobol, windev, basic, php et autres), je ne tolère même pas les warnings, je corrige même les type cast... A+ s'il n'y a pas de solution, c'est qu'il n'y a pas de problème ! |
Bonjour,
je recherche un recueil des conventions de codage en C++ sous Linux. J'ai trouvé les conventions du langage C sous www.gnu.org, mais pas celles du C++. En meme temps linux est codé en C, non ? Sinon d'accord pour le gcc -W -Wall -pedantic -std=c99 -ansi (à ta guise...) Et généralement, une anomalie ne devrait pas arriver Vive Linux, les vacances et les gauffres ! |
Tout d'abord, merci de vos réponses.
Je compile toujours avec tous les warnings et en pedantic, de même que je formate mon code à moins de 80 lignes de large. En fait ce que j'entends par conventions, c'est la façon de formatter le code et de nommer les classes, methodes, variables, ... Par exemple: int main(int argc, char **argv) { ... } ou int main(int argc, char **argv) { ... } double d_toto, double dtoto ou double toto etc... Merci encore. |
Alors quelques petites remarques.
- Le pedantic c'est bien mais il me semble qu'il fait la tête si tu fais des commentaires avec '//'. Personnellement je n'utilise pas cette option. - Pour les conventions de nommage, en général on écrit tout en minuscule en utilisant des '_' (contrairement au java ou les noms de classes commencent par une majuscule) : ex : c++ : ma_classe, ma_fonction ex : java : MaClasse, maFonction On remarquera que QT suit pourtant le second type de notation donc en fait c'est une convention discutable. - Personnellement quand je déclare une structure une classe ou sune structure je termine toujours son nom par _t. ex : ma_classe_t - Quand je fais une boucle avec un iterator, je renomme toujours l'objet itéré avec une const référence, sauf si la boucle est très simple pour que ce soit plus lisible (sauf quand la boucle est vraiment très simple) : int main(){
std::map<std::string,int> m;
m["janvier"] = 1;
m["fevrier"] = 2;
//...
std::map<std::string,int>::const_iterator
mit (m.begin()),
mend(m.end());
for(;mit!=mend;++mit){
const std::string & mois = mit->first;
const int & numero = mit->second;
std::cout << mois << ' ' << numero << std::endl;
}
return 0;
}
- De manière générale utiliser le moins possible les using namespace pour plus de lisibilité. Ca alourdit un peu les types mais au moins on sait de quoi on parle et il n'y a pas d'ambiguité. En particulier, ne jamais utiliser un using namespace dans un header (.hpp, .h) - Après plus sur le style de codage, en C++ on n'a pas besoin de malloc et free (il y a new et delete), de cast (il y a les static_cast, les dynamic_cast...). - Utiliser le moins possible les new, les delete, les pointeur car la plupart du temps on peut se débrouiller juste avec le constructeur et les références, un peu comme le java. De même par le jeu des héritages le cast peut être très souvent éviter (et devrait l'être autant que possible). - Ne passer à une fonction un pointeur que si c'est bien le pointeur qui est manipulé. Si c'est juste pour éviter d'empiler un gros objet en paramètre, ou pour que celui-ci soit modifiable par la fonction, utiliser une référence. - Verrouiller le code au maximum. Bien mettre en private portected ce qui doit l'être, mettre les const pour les invariants etc... Bonne chance |
| 16/08 21h40 | Choisir une distribution Linux | Distributions |
| 03/04 17h28 | On peut cacher le code source d'une page HTML | Mythes et légendes |
| 31/10 10h03 | Délais lors d'une connexion ssh sous Linux | SSH |
| 04/01 13h34 | Nvidia WDM Vidéo Capture (universal) code 10. | Carte graphique |
| 09/01 18h15 | [Audio/Vidéo] Déterminer les codecs nécessaires | Vidéo |
| 03/06 21h55 | équivalent du codec MP4 pour linux | 9 |
| 13/05 10h46 | Codes sources distribution linux | 4 |
| 23/03 16h45 | Probleme code:blocks sous linux | 8 |
| 15/07 20h31 | Codes source sous Linux | 5 |
![]() | K-Lite Codec Pack Full - K-Lite Codec Pack est une collection de codecs et de filtres nécessaires pour encoder ou décoder des formats audio ou vidéo.... | Catégorie: Codecs Licence: Open Source |
![]() | K-Lite Codec Pack Standard - K-Lite Codec Pack est une collection de codecs et de filtres nécessaires pour encoder ou décoder des formats audio ou vidéo.... | Catégorie: Codecs Licence: Open Source |
![]() | Vista Codec Package - Vista Codec Package regroupe une collection impressionnante de codecs (audio et vidéo), permettant d'ouvrir la plupart... | Catégorie: Codecs Licence: Freeware/gratuit |
![]() | K-Lite Mega Codec Pack - K-Lite Codec Pack est une collection de codecs et de filtres nécessaires pour encoder ou décoder des formats audio ou vidéo.... | Catégorie: Codecs Licence: Open Source |
![]() | NAD M15 | Catégorie: Amplificateur | 2,980.00 € Premium94 |
![]() | Yamaha DSP-Z11 | Catégorie: Amplificateur | 5,499.00 € Premium94 |
![]() | Denon AVC-A1SE | Catégorie: Amplificateur | |
![]() | Pioneer VSX-LX50 | Catégorie: Amplificateur |