Skip to content

Commit

Permalink
readme
Browse files Browse the repository at this point in the history
  • Loading branch information
Quentin Martinez authored and Quentin Martinez committed Mar 7, 2018
1 parent 06f3b59 commit bef9889
Show file tree
Hide file tree
Showing 3 changed files with 170 additions and 31 deletions.
170 changes: 170 additions & 0 deletions Readme.rtfd/TXT.rtf
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf200
{\fonttbl\f0\froman\fcharset0 Times-Roman;\f1\froman\fcharset0 Times-Bold;\f2\fnil\fcharset0 LucidaGrande;
}
{\colortbl;\red255\green255\blue255;\red0\green0\blue0;}
{\*\expandedcolortbl;;\cssrgb\c0\c0\c0;}
{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid1}
{\list\listtemplateid2\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid101\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid2}}
{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}}
\paperw11905\paperh16837\margl1133\margr1133\margb1133\margt1133
\deftab720
\pard\pardeftab720\sl280\partightenfactor0

\f0\fs24 \cf2 \expnd0\expndtw0\kerning0
\up0 \nosupersub \ulnone \outl0\strokewidth0 \strokec2 {{\NeXTGraphic pastedGraphic.png \width25600 \height39080 \appleattachmentpadding0 \appleembedtype0 \appleaqc
}¬}\
\pard\pardeftab720\sl760\sa240\partightenfactor0

\fs66\fsmilli33333 \cf2 \strokec2 Impl\'e9mentation de la norme de 42
\fs56 \cf2 \strokec2 Version 2.0.1 \
\pard\pardeftab720\sl520\sa240\partightenfactor0

\f1\b\fs45\fsmilli22670 \cf2 \strokec2 Formatage
\fs24 \cf2 \strokec2 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl360\sa320\partightenfactor0
\f0\b0\fs32 \cf2 \strokec2 \'95 Un nom de structure doit commencer par s_. \
\'95 Un nom de typedef doit commencer par t_. \
\'95 Un nom d\'92union doit commencer par u_. \
\'95 Un nom d\'92enum doit commencer par e_. \
\'95 Un nom de globale doit commencer par g_. \
\'95 Les noms de variables, de fonctions doivent \'eatre compos\'e9s exclusivement de mi- \uc0\u8232 nuscules, de chiffres et de \'92_\'92 (Unix Case). \
\'95 Les noms de fichiers et de r\'e9pertoires doivent \'eatre compos\'e9s exclusivement de minuscules, de chiffres et de \'92_\'92 (Unix Case). \
\'95 Le fichier doit \'eatre compilable. \
\'95 Les caract\'e8re ne faisant pas partie de la table ascii standart ne sont pas autoris\'e9s. \uc0\u8232
\fs24 \cf2 \strokec2 \

\fs32 \cf2 \strokec2 \'95 Tous vos fichiers devront commencer par le header standard de 42 d\'e8s la premi\'e8re ligne. Ce header est disponible par defaut dans les \'e9diteurs emacs et vim sur les dumps. \
\'95 Vous devez indenter votre code avec des tabulations de la taille de 4 espaces. Ce n\'92est pas \'e9quivalent \'e0 4 espace, ce sont bien des tabulations. \
\'95 Chaque fonction doit faire au maximum 25 lignes sans compter les accolades du bloc de la fonction. \
\'95 Chaque ligne ne peut faire plus de 80 colonnes, commentaires compris. Attention : une tabulation ne compte pas pour une colonne mais bien pour les n espaces qu\'92elle represente. \
\'95 Une seule instruction par ligne. \
\'95 Une ligne vide ne doit pas contenir d\'92espace ou de tabulation. \
\'95 Une ligne ne devrait jamais se terminer par des espaces ou des tabulations. \
\'95 Quand vous rencontrez une accolade ouvrante ou fermante ou une fin de structure de controle, vous devez retourner \'e0 la ligne. \uc0\u8232 \
\'95 Chaque virgule ou point-virgule doit \'eatre suivi d\'92un espace si nous ne sommes pas en fin de ligne. \uc0\u8232 \
\'95 Chaque op\'e9rateur (binaire ou ternaire) et op\'e9randes doivent \'eatre s\'e9par\'e9s par un espace et seulement un. \
\'95 Chaque mot-cl\'e9 du C doit \'eatre suivi d\'92un espace, sauf pour les mot-clefs de type (comme int, char, float, etc.) ainsi que sizeof. \
\'95 Chaque d\'e9claration de variable doit \'eatre indent\'e9e sur la m\'eame colonne. \
\'95 Les \'e9toiles des pointeurs doivent \'eatre coll\'e9s au nom de la variable. \
\'95 Une seule d\'e9claration de variable par ligne. \
\'95 On ne peut faire une d\'e9claration et une initialisation sur une m\'eame ligne, \'e0 l\'92ex- ception des variables globales et des variables statiques. \
\'95 Les d\'e9clarations doivent \'eatre en d\'e9but de fonction et doivent \'eatre s\'e9par\'e9es de l\'92impl\'e9mentation par une ligne vide. \
\'95 Aucune ligne vide ne doit \'eatre pr\'e9sente au milieu des d\'e9clarations ou de l\'92impl\'e9- mentation. \
\'95 La multiple assignation est interdite. \
\'95 Vous pouvez retourner \'e0 la ligne lors d\'92une m\'eame instruction ou structure de contr\'f4le, mais vous devez rajouter une indentation par parenth\'e8se ou op\'e9rateur d\'92affectation. Les op\'e9rateurs doivent \'eatre en d\'e9but de ligne. \
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl360\sa320\partightenfactor0

\fs24 \cf2 \strokec2 \'95
\fs32 \cf2 \strokec2 Une fonction prend au maximum 4 param\'e8tres nomm\'e9s. \

\fs24 \cf2 \strokec2 \'95
\fs32 \cf2 \strokec2 Une fonction qui ne prend pas d\'92argument doit explicitement \'eatre prototyp\'e9e avec le mot void comme argument.
\fs24 \cf2 \strokec2 \
\pard\pardeftab720\sl520\sa240\partightenfactor0

\f1\b\fs45\fsmilli22667 \cf2 \strokec2 Fonctions
\f0\b0\fs24 \cf2 \strokec2 \
\pard\tx20\tx281\pardeftab720\li261\fi-262\sl360\sa240\partightenfactor0
\ls1\ilvl0
\fs32 \cf2 \kerning1\expnd0\expndtw0 \up0 \nosupersub \ulnone \outl0\strokewidth0 {\listtext \uc0\u8226 }\cf2 \expnd0\expndtw0\kerning0
\up0 \nosupersub \ulnone \outl0\strokewidth0 \strokec2 Les param\'e8tres des prototypes de fonctions doivent \'eatre nomm\'e9s\
\ls1\ilvl0\cf2 \kerning1\expnd0\expndtw0 \up0 \nosupersub \ulnone \outl0\strokewidth0 {\listtext \uc0\u8226 }\cf2 \expnd0\expndtw0\kerning0
\up0 \nosupersub \ulnone \outl0\strokewidth0 \strokec2 Chaque d\'e9finition de fonction doit \'eatre s\'e9par\'e9e par une ligne vide de la suivante.\
\ls1\ilvl0\cf2 \kerning1\expnd0\expndtw0 \up0 \nosupersub \ulnone \outl0\strokewidth0 {\listtext \uc0\u8226 }\cf2 \expnd0\expndtw0\kerning0
\up0 \nosupersub \ulnone \outl0\strokewidth0 \strokec2 Vous ne pouvez d\'e9clarer que 5 variables par bloc au maximum.
\fs24 \cf2 \strokec2 \
\pard\pardeftab720\sl360\sa240\partightenfactor0

\fs32 \cf2 \strokec2 \'95 Vos identifiants de fonctions doivent \'eatre align\'e9s dans un m\'eame fichier. Cela s\'92ap- plique aux headers C.
\fs24 \cf2 \strokec2 \
\pard\pardeftab720\sl520\sa240\partightenfactor0

\f1\b\fs45\fsmilli22667 \cf2 \strokec2 Typedef, struct, enum et union
\f0\b0\fs24 \cf2 \strokec2 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl360\sa320\partightenfactor0

\fs32 \cf2 \strokec2 \'95 Vous devez mettre une tabulation lorsque vous d\'e9clarez une struct, enum ou union. \
\'95 Lors de la d\'e9claration d\'92une variable de type struct, enum ou union, vous ne \uc0\u8232 mettrez qu\'92un espace dans le type. \
\'95 Vous devez utiliser une tabulation entre les deux param\'e8tres d\'92un typedef. \
\'95 Lorsque vous d\'e9clarez une struct, union ou enum avec un typedef, toutes les r\'e8gles s\'92appliquent et vous devez aligner le nom du typedef avec le nom de la struct, union ou enum. \
\'95 Vous ne pouvez pas d\'e9clarer une structure dans un fichier .c. \uc0\u8232 \
\pard\pardeftab720\sl520\sa240\partightenfactor0

\f1\b\fs45\fsmilli22667 \cf2 \strokec2 Headers
\f0\b0\fs24 \cf2 \strokec2 \
\pard\pardeftab720\sl360\sa240\partightenfactor0
\cf2 \strokec2
\fs32 \cf2 \strokec2 \'95 Seuls les inclusions de headers (syst\'e8me ou non), les d\'e9clarations, les defines, les prototypes et les macros sont autoris\'e9s dans les fichiers headers. \
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl360\sa320\partightenfactor0
\cf2 \strokec2 \'95 Tous les includes de .h doivent se faire au d\'e9but du fichier (.c ou .h). \
\'95 On prot\'e9gera les headers contre la double inclusion. Si le fichier est ft_foo.h, la \uc0\u8232 macro t\'e9moin est FT_FOO_H. \
\'95 Les prototypes de fonctions doivent se trouver exclusivement dans des fichiers .h. \
\'95 Une inclusion de header (.h) dont on ne se sert pas est interdite. \uc0\u8232 \
\pard\pardeftab720\sl520\sa240\partightenfactor0

\f1\b\fs45\fsmilli22667 \cf2 \strokec2 Macros et Pr\'e9-processeur
\f0\b0\fs24 \cf2 \strokec2 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl360\sa320\partightenfactor0

\fs32 \cf2 \strokec2 \'95 Les defines d\'e9finissant du code sont interdits. \
\'95 Les macros multilignes sont interdites. \
\'95 Seuls les noms de macros sont en majuscules \
\'95 Il faut indenter les caract\'e8res qui suivent un #if , #ifdef ou #ifndef \uc0\u8232 \
\pard\pardeftab720\sl520\sa240\partightenfactor0

\f1\b\fs45\fsmilli22667 \cf2 \strokec2 Choses Interdites !
\fs32 \cf2 \strokec2
\f0\b0\fs24 \cf2 \strokec2 \
\pard\pardeftab720\sl360\sa240\partightenfactor0

\fs32 \cf2 \strokec2 \'95 Vous n\'92avez pas le droit d\'92utiliser :
\f2 \uc0\u9702
\f0 for
\fs24 \cf2 \strokec2 \

\f2\fs32 \cf2 \strokec2 \uc0\u9702
\f0 do...while
\f2 \uc0\u9702
\f0 switch\uc0\u8232
\f2 \uc0\u9702
\f0 case\uc0\u8232
\f2 \uc0\u9702
\f0 goto
\fs24 \cf2 \strokec2 \

\fs32 \cf2 \strokec2 \'95 Les op\'e9rateurs ternaires \'91 ?\'92 imbriqu\'e9s\uc0\u8232 \'95 Les tableaux \'e0 taille variable (VLA - Variable Length Array)
\fs24 \cf2 \strokec2 \
\pard\pardeftab720\sl520\sa240\partightenfactor0

\f1\b\fs45\fsmilli22667 \cf2 \strokec2 Commentaires
\f0\b0\fs24 \cf2 \strokec2 \
\pard\tx20\tx281\pardeftab720\li261\fi-262\sl360\sa240\partightenfactor0
\ls2\ilvl0
\fs32 \cf2 \kerning1\expnd0\expndtw0 \up0 \nosupersub \ulnone \outl0\strokewidth0 {\listtext \uc0\u8226 }\cf2 \expnd0\expndtw0\kerning0
\up0 \nosupersub \ulnone \outl0\strokewidth0 \strokec2 Les commentaires peuvent se trouver dans tous les fichiers source. \
\ls2\ilvl0\cf2 \kerning1\expnd0\expndtw0 \up0 \nosupersub \ulnone \outl0\strokewidth0 {\listtext \uc0\u8226 }\cf2 \expnd0\expndtw0\kerning0
\up0 \nosupersub \ulnone \outl0\strokewidth0 \strokec2 Il ne doit pas y avoir de commentaires dans le corps des fonctions.\
\ls2\ilvl0\cf2 \kerning1\expnd0\expndtw0 \up0 \nosupersub \ulnone \outl0\strokewidth0 {\listtext \uc0\u8226 }\cf2 \expnd0\expndtw0\kerning0
\up0 \nosupersub \ulnone \outl0\strokewidth0 \strokec2 Toutes les lignes interm\'e9diaires s\'92alignent sur elles, et commencent par \'91**\'92. \
\ls2\ilvl0\cf2 \kerning1\expnd0\expndtw0 \up0 \nosupersub \ulnone \outl0\strokewidth0 {\listtext \uc0\u8226 }\cf2 \expnd0\expndtw0\kerning0
\up0 \nosupersub \ulnone \outl0\strokewidth0 \strokec2 Les zones de commentaires commencant par // sont interdits.\
\pard\pardeftab720\sl520\sa240\partightenfactor0

\f1\b\fs45\fsmilli22667 \cf2 \strokec2 Les fichiers
\f0\b0\fs24 \cf2 \strokec2 \
\pard\pardeftab720\sl360\sa240\partightenfactor0

\fs32 \cf2 \strokec2 \'95 Vous ne pouvez pas inclure un .c.\uc0\u8232 \'95 Vous ne pouvez pas avoir plus de 5 d\'e9finitions de fonctions dans un .c.
\fs24 \cf2 \strokec2 \
\pard\pardeftab720\sl520\sa240\partightenfactor0

\f1\b\fs45\fsmilli22667 \cf2 \strokec2 Makefile
\f0\b0\fs24 \cf2 \strokec2 \
\pard\tx220\tx720\pardeftab720\li720\fi-720\sl360\sa320\partightenfactor0

\fs32 \cf2 \strokec2 \'95 Les r\'e8gles $(NAME), clean, fclean, re et all sont obligatoires. \
\'95 Le projet est consid\'e9r\'e9 comme non fonctionnel si le Makefile relink. \
\'95 Dans le cas d\'92un projet multibinaire, en plus des r\'e8gles pr\'e9c\'e9dentes, vous devez avoir une r\'e8gle all compilant les deux binaires ainsi qu\'92une r\'e8gle sp\'e9cifique \'e0 chaque binaire compil\'e9. \
\'95 Dans le cas d\'92un projet faisant appel \'e0 une biblioth\'e8que de fonctions (par exemple une libft), votre makefile doit compiler automatiquement cette biblioth\'e8que. \
\'95 Les sources n\'e9cessaires \'e0 la compilation de votre programme doivent \'eatre explicitement cit\'e9s dans votre Makefile. }
Binary file added Readme.rtfd/pastedGraphic.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
31 changes: 0 additions & 31 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1,31 +0,0 @@
• Un nom de structure doit commencer par s.
• Un nom de typedef doit commencer par t_.
• Un nom d’union doit commencer par u_.
• Un nom d’enum doit commencer par e_.
• Un nom de globale doit commencer par g_.
• Les noms de variables, de fonctions doivent être composés exclusivement de mi-
nuscules, de chiffres et de ’_’ (Unix Case).
• Les noms de fichiers et de répertoires doivent être composés exclusivement de minuscules, de chiffres et de ’_’ (Unix Case).
• Le fichier doit être compilable.
• Les caractère ne faisant pas partie de la table ascii standart ne sont pas autorisés.
• Tous vos fichiers devront commencer par le header standard de 42 dès la première ligne. Ce header est disponible par defaut dans les éditeurs emacs et vim sur les dumps.
• Vous devez indenter votre code avec des tabulations de la taille de 4 espaces. Ce n’est pas équivalent à 4 espace, ce sont bien des tabulations.
• Chaque fonction doit faire au maximum 25 lignes sans compter les accolades du bloc de la fonction.
• Chaque ligne ne peut faire plus de 80 colonnes, commentaires compris. Attention : une tabulation ne compte pas pour une colonne mais bien pour les n espaces qu’elle represente.
• Une seule instruction par ligne.
• Une ligne vide ne doit pas contenir d’espace ou de tabulation.
• Une ligne ne devrait jamais se terminer par des espaces ou des tabulations.
• Quand vous rencontrez une accolade ouvrante ou fermante ou une fin de structure de controle, vous devez retourner à la ligne.
• Chaque virgule ou point-virgule doit être suivi d’un espace si nous ne sommes pas en fin de ligne.
• Chaque opérateur (binaire ou ternaire) et opérandes doivent être séparés par un espace et seulement un.
• Chaque mot-clé du C doit être suivi d’un espace, sauf pour les mot-clefs de type (comme int, char, float, etc.) ainsi que sizeof.
• Chaque déclaration de variable doit être indentée sur la même colonne.
• Les étoiles des pointeurs doivent être collés au nom de la variable.
• Une seule déclaration de variable par ligne.
• On ne peut faire une déclaration et une initialisation sur une même ligne, à l’ex- ception des variables globales et des variables statiques.
• Les déclarations doivent être en début de fonction et doivent être séparées de l’implémentation par une ligne vide.
• Aucune ligne vide ne doit être présente au milieu des déclarations ou de l’implé- mentation.
• La multiple assignation est interdite.
• Vous pouvez retourner à la ligne lors d’une même instruction ou structure de contrôle, mais vous devez rajouter une indentation par parenthèse ou opérateur d’affectation. Les opérateurs doivent être en début de ligne.
• Une fonction prend au maximum 4 paramètres nommés.
• Une fonction qui ne prend pas d’argument doit explicitement être prototypée avec le mot void comme argument.

0 comments on commit bef9889

Please sign in to comment.