<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog de Nicosmash &#187; Developpement</title>
	<atom:link href="https://blog.developpez.com/nicosmash/pcategory/developpement/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/nicosmash</link>
	<description></description>
	<lastBuildDate>Wed, 11 Sep 2013 16:26:26 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Norme de développement</title>
		<link>https://blog.developpez.com/nicosmash/p12032/developpement/norme-de-developpement</link>
		<comments>https://blog.developpez.com/nicosmash/p12032/developpement/norme-de-developpement#comments</comments>
		<pubDate>Sat, 08 Jun 2013 22:03:32 +0000</pubDate>
		<dc:creator><![CDATA[nicosmash]]></dc:creator>
				<category><![CDATA[Developpement]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/nicosmash/?p=20</guid>
		<description><![CDATA[Présentation générale • Une ligne, y compris pour les commentaires, ne doit pas excéder 80 colonnes. • Une seule instruction par ligne. • Une fonction ne doit pas excéder 25 lignes entre les accolades. • Un fichier ne doit pas &#8230; <a href="https://blog.developpez.com/nicosmash/p12032/developpement/norme-de-developpement">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>Présentation générale</strong><br />
• Une ligne, y compris pour les commentaires, ne doit pas excéder 80 colonnes.<br />
• Une seule instruction par ligne.<br />
• Une fonction ne doit pas excéder 25 lignes entre les accolades.<br />
• Un fichier ne doit pas contenir plus de 5 fonctions.<br />
• Seuls les inclusions de headers (système ou non), les définitions, les defines, les prototypes et les macros sont autorisés dans les fichiers headers.<br />
• Toute inclusion de header doit etre justifiée.<br />
• Les macros multilignes sont interdites.<br />
• Les prototypes de fonctions et les macros doivent se trouver exclusivement dans des fichiers .h. Les seules macros tolérées dans les fichiers .c sont celles qui activent des fonctionnalités (ex : _BSD_SOURCE).</p>
<p><strong>Les commentaires</strong><br />
• Les commentaires peuvent se trouver dans tous les fichiers source.<br />
• Il ne doit pas y avoir de commentaires dans le corps des fonctions.</p>
<p><strong>Indentation</strong><br />
• L’indentation est obligatoire, quand on ouvre une accolade on indente et inversement.</p>
<p><strong>Nomination</strong><br />
• Les objets (variables, fonctions, macros, types, fichiers ou répertoires) doivent avoir les noms les plus explicites ou mnémoniques.<br />
• Les abréviations sont tolérées dans la mesure où elles permettent de réduire significativement la taille du nom sans en perdre le sens. Les parties des noms composites seront séparées par ’_’.<br />
• Tous les identifiants (fonctions, macros, types, variables etc.) doivent être en anglais.<br />
• Les noms de variables, de fonctions, de fichiers et de répertoires doivent être composés exclusivement de minuscules, de chiffres et de ’_’.<br />
• Seuls les noms de macros sont en majuscules.<br />
• Un typedef sur s_my_struct doit s’appeler t_my_struct.<br />
• Un nom de structure doit commencer par s_.<br />
• Un nom de type doit commencer par t_.<br />
• Un nom d’union doit commencer par u_.<br />
• Un nom de globale doit commencer par g_.<br />
• Toute utilisation de variable globale doit etre jusitifiée. </p>
<p><strong>Déclarations / Affectations</strong><br />
• On sautera une ligne entre la déclaration de variable et les instructions. On met une variable par ligne. Il ne doit pas y avoir d’autres lignes vides dans les blocs. Si vous avez envie de séparer des parties d’un bloc, faites soit plusieurs blocs, soit une fonction.<br />
• On alignera les déclarations avec des tab (sous Emacs M-i). Cela est valable aussi pour les prototypes de fonction.<br />
• Il est interdit d’affecter et de déclarer une variable en même temps, excepté lorsque l’on manipule des variables statiques ou globales<br />
• Abuser des static pour faire des globales est interdit. Toute variable statique doit etre justifiée.<br />
• Le symbole de pointeur (*) porte toujours sur la variable (ou fonction), et jamais sur le type</p>
<p><strong>Structures de contrôle</strong><br />
• Une structure de contrôle sera toujours suivie d’un retour à la ligne et des accolades (même pour un if &#8230; return &#8230;).</p>
<p><strong>Paramètres</strong><br />
• La déclaration des paramètres se fera à la syntaxe ISO/ANSI C.<br />
• Les virgules ne sont autorisées que dans ce contexte.<br />
• Au maximum on doit trouver 4 paramètres dans une fonction. Pour passer plus d’information, faites une structure et passez un pointeur sur cette structure (et jamais la structure directement).</p>
<p><strong>Espaces</strong><br />
• Un espace derrière la virgule.<br />
• Pas d’espace entre le nom d’une fonction et la ’(’.<br />
• Un espace entre un mot clé C (avec ou sans argument) et la ’(’ ou le ’ ;’ dans le cas d’un return.<br />
• Pas d’espace après un opérateur unaire.<br />
• Tous les opérateurs binaires et ternaires sont séparés des arguments par un espace de part et d’autre.<br />
• Il faut indenter les caractères qui suivent un #if ou un #ifdef.<br />
• Il faut indenter les macros imbriquées.<br />
• Une ligne vide doit séparer les définitions de fonctions.</p>
<p><strong>Makefile</strong><br />
• Les règles $(NAME), clean, fclean, re et all sont obligatoires.<br />
• Le projet est considéré comme non fonctionnel si le makefile relink.<br />
• Dans le cas d’un projet multi-binaires, en plus des règles précédentes, vous devez avoir une règle all compilant les deux binaires ainsi qu’une règle spécifique à chaque binaire compilé.<br />
• Dans le cas d’un projet faisant appel à une bibliothèque de fonctions (par exemple une libmy), votre Makefile doit compiler automatiquement cette bibliothèque.<br />
• L’utilisation de ’wildcard’ (*.c par exemple) est interdite.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
