| 15 | | est fourni ci-après. |
| | 15 | est fourni ci-après. Toujours pour une meilleure lisibilité, réduisez la taille |
| | 16 | des tabulations à 2 ou 4 caractères au lieu du defaut de 8. Enfin, n'insérez |
| | 17 | jamais le caractère ''tabulation'' dans votre code source, configurez votre |
| | 18 | éditeur favori pour que celui-çi substitue automatiquement des espaces blanc |
| | 19 | ordinaires à la place d'une tabulation. |
| | 20 | |
| | 21 | Pour '''{{{vim}}}'''/'''{{{gvim}}}''', ajouter dans votre {{{~/.vimrc}}} les lignes |
| | 22 | suivantes: |
| | 23 | {{{ |
| | 24 | :set shiftwidth=2 |
| | 25 | :set expandtab |
| | 26 | |
| | 27 | :autocmd FileType c,cpp set cindent |
| | 28 | :autocmd FileType make set noexpandtab shiftwidth=8 |
| | 29 | }}} |
| | 30 | |
| | 31 | Pour '''{{{emacs}}}''', ajoutez dans votre {{{~/.emacs}}} les lignes suivantes: |
| | 32 | {{{ |
| | 33 | ;; CC-Mode configuration. |
| | 34 | (defun local-c-mode-hook () |
| | 35 | (setq c-echo-syntactic-information-p t |
| | 36 | c-basic-offset 2 |
| | 37 | tab-width 4 |
| | 38 | indent-tabs-mode nil) |
| | 39 | (c-set-offset 'topmost-intro 0) |
| | 40 | (c-set-offset 'inclass '++) |
| | 41 | (c-set-offset 'access-label '-) |
| | 42 | (c-set-offset 'comment-intro '-) |
| | 43 | (c-set-offset 'arglist-cont-nonempty 'c-lineup-arglist-close-under-paren) |
| | 44 | (c-set-offset 'arglist-close 'c-lineup-arglist-close-under-paren) |
| | 45 | (c-set-offset 'defun-block-intro '+) |
| | 46 | (c-set-offset 'statement-block-intro '+) |
| | 47 | (c-set-offset 'block-close 0) |
| | 48 | (c-set-offset 'case-label '+) |
| | 49 | (c-set-offset 'statement-case-intro '+)) |
| | 50 | (add-hook 'c-mode-common-hook 'local-c-mode-hook) |
| | 51 | |
| | 52 | (setq auto-mode-alist |
| | 53 | (cons '("\\.\\(h\\|hh\\|hpp\\)\\'" . c++-mode) |
| | 54 | auto-mode-alist)) |
| | 55 | }}} |
| | 56 | |
| | 57 | [[Image(indentation-1.png,70%,align=center)]] |
| | 58 | |
| | 59 | |
| | 60 | == Compilation == |
| | 61 | |
| | 62 | Dans le cadre de ce premier TME, nous allons nous contenter de faire de la compilation |
| | 63 | monolithique. C'est à dire que tout le code de chaque exercice sera contenu dans un |
| | 64 | seul fichier source, par exemple {{{Box.cpp}}}. L'éxécutable sera créé par compilation |
| | 65 | de cet unique fichier. |
| | 66 | |
| | 67 | Compilation monolithique d'un fichier source: |
| | 68 | {{{ |
| | 69 | g++ -Wall -g -o box Box.cpp |
| | 70 | }}} |
| | 71 | Ici, l'éxécutable généré sera {{{box}}}. Attention l'argment {{{-o}}} doit immédiatement |
| | 72 | être suivi du nom de l'éxécutable ({{{box}}}). |
| | 73 | |
| | 74 | Autres arguments donnés à {{{g++}}}: |
| | 75 | * {{{-g}}} demande d'inclure le code nécessaire pour pouvoir utiliser un débogueur |
| | 76 | ({{{gdb}}} ou {{{ddd}}}). |
| | 77 | * {{{-Wall}}} demande d'afficher tous les avertissements. Vous devrez toujours |
| | 78 | utiliser ce drapeau ({{{flag}}}) et à l'issue de la mise au point, votre programme |
| | 79 | ne devra générer aucun avertissement. |
| | 80 | |