GAMOPAT
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Convention de nommage en C

5 participants

Aller en bas

Convention de nommage en C Empty Convention de nommage en C

Message par Invité Mer 7 Fév 2018 - 11:49

Salut tout le monde, j'avais envie dans lancer un petit sujet afin de partager ensemble vos petites habitudes en ce qui concerne le nommage en C.

Bien entendu rien être obligatoire, chacun travaille à sa manière, mais j'aime bien écrire un code propre et lisible bien que j'avoue qu'en ce moment j'hésite entre plusieurs styles.

Celle que je préfère c'est d'écrire en commencement par une minuscule puis chaque nouveau mot en majuscule.

Par contre je galère toujours à savoir si je dois mettre un mot avant l'autre, par exemple playerInit(); ou initPlayer(); Je trouve que initPlayer() est de suite plus lisible, mais je trouve que commencer toutes les fonctions concernant le joueur par player permet de mieux s'organiser.

Code:
bool playerIsActive();
bool playerIsDead();
void playerUdapte();
void playerInit();
etc.

J'aime aussi écrire les variables à l'ancienne c'est à dire mettre des underscores partout, mais je fini toujours pas laisser tomber cette méthode, car les variables peuvent très longue à écrire.
avatar
Invité
Invité


Revenir en haut Aller en bas

Convention de nommage en C Empty Re: Convention de nommage en C

Message par Tryphon Mer 7 Fév 2018 - 11:56

Souvent, je fais plus ou moins de l'objet en C, donc j'utilise la convention de nommage de la GLib/GTK/Gnome (c'est le premier code objet en C que j'ai vu).

Grosso modo, toutes les fonctions qui concernent les struct Player commencent par player. Et tout est déclaré dans player.h

Ce qui donne playerInit, playerSetPos, playerRelease par exemple. Le premier paramètre est toujours

Code:
Player *this

Bon, comme je fais aussi beaucoup de Python, ça donne plutôt :

Code:
player_init(Player *self)

mais c'est l'idée.
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Convention de nommage en C Empty Re: Convention de nommage en C

Message par tetsuro Mer 7 Fév 2018 - 12:03

Salut, dans le nommage il n'y a pas que l'esthétique ou la visibilité, il y a aussi le pratique, par exemple quand j'ai trop de variables de positions je vais commencer par :
XplayerOn, Xenemy, Yplayer2, etc.
Ainsi via l'IDE je trouve plus facilement les variables de positions quand je commence à taper X et que l'auto-complétion trouve automatiquement toutes ces variables commençants par X, donc on peut prioriser l'auto-complétion ou la lisibilité.
Ce que tu appelles "commencement par une minuscule puis chaque nouveau mot en majuscule", s'appelle le "lowerCamelCase".
En fait il n'y pas vraiment de convention, j'ai déjà essayé de me tenir à une convention personnelle, mais des fois il y a trop de variables, trop de dérivés, un code trop peu llisible et je me retrouves avec des cas où je dois commencer par des underscores, tirets etc :)
tetsuro
tetsuro
Patient contaminé

Masculin Nombre de messages : 593
Age : 47
Localisation : Carcassonne
Date d'inscription : 27/12/2015

Revenir en haut Aller en bas

Convention de nommage en C Empty Re: Convention de nommage en C

Message par ichigobankai Mer 7 Fév 2018 - 12:28

de mon coté

#define NOMENCAPITALES valeur

toutes les autres dans ce style :
player_is_active();

Comme dit au dessus, il n'y a pas de convention réelle.
Le but étant simplement que TOI tu t'y retrouves.
ichigobankai
ichigobankai
Patient incurable

Masculin Nombre de messages : 1922
Age : 45
Localisation : 49
Date d'inscription : 04/04/2011

https://www.2minds.fr

Revenir en haut Aller en bas

Convention de nommage en C Empty Re: Convention de nommage en C

Message par Invité Mer 7 Fév 2018 - 13:45

Tryphon a écrit:Grosso modo, toutes les fonctions qui concernent les struct Player commencent par player. Et tout est déclaré dans player.h

Ce qui donne playerInit, playerSetPos, playerRelease par exemple. Le premier paramètre est toujours

J'adopte ! Je trouve ça tellement beau et propre !
avatar
Invité
Invité


Revenir en haut Aller en bas

Convention de nommage en C Empty Re: Convention de nommage en C

Message par Stef Mer 7 Fév 2018 - 14:37

La convention de nommage est un peu propre à chacun, tant que ça reste clair pour quiconque et facile à lire je dirai que c'est le plus important...
Etant donné que tu utilises SGDK, tu peux peut être te calquer sur la convention que j'utilise, tu verras que c'est à peu près celle où tu sembles parti Wink
J'utilise la lowerCamelCase pour les variables et fonctions.
La CamelCase tout court pour la déclaration des structures / objets, et tout en majuscule pour les definitions / constantes.
Tu verras aussi que j'ai essayé d'organiser SGDK en modules / unités, et que toutes les fonctions d'un module commencent par 3/4 lettres en majuscules pour définir le modules (SYS, MEM, SPR, VDP, JOY, ...) suivi d'un underscore de séparation et du nom de la fonction (MEM_init(), MEM_alloc(), SPR_addSprite(..), ...)

Ca a du sens pour un SDK, car on va dire que ce sont des fonctions "systèmes", pour ton jeu je pense que tu peux faire comme Tryphon l'a proposé.
Stef
Stef
Interne
Interne

Masculin Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Convention de nommage en C Empty Re: Convention de nommage en C

Message par Monos Jeu 8 Fév 2018 - 7:34

Personnellement comme beaucoup j'ai l'impression, j'aime bien "décoller" les noms de variables/fonction... qui possède plusieurs nom dedans.
Pour reprendre ton exemple du début :

bool player_Is_Active();
bool player_Is_Dead();
void player_Udapte();
void player_Init();
...

Je trouve ça beaucoup plus lisible que tout collé même avec une majuscule.

Monos
Monos
Patient contaminé

Masculin Nombre de messages : 325
Age : 40
Localisation : Chatillon sur Marne
Date d'inscription : 06/07/2017

http://offgame.org/

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum