Principe d'abstraction et de réutilisation + erreur #define

Principe d'abstraction et de réutilisation + erreur #define

by Jérémy Suchet -
Number of replies: 1

Bonjour,

Je n'ai pas très bien compris si nous devions appliquer les principes d'abstraction et de réutilisation au maximum dans notre code. Y a-t-il des points la dessus ? Car, j'ai l'impression que si je le fais, je vais me retrouver avec encore plus de fonction pour par grand chose. Surtout que cela prendrais plus d'espace sur la pile n'est-ce pas ?

De plus, je ne comprends pas une erreur qui s'affiche lorsque je tente de définir le MAX avec un #define. Je crois pourtant que je l'ai correctement défini mais si quelqu'un a une idée je prends volontiers. J'ai été obligé d'utiliser une const. pour le définir. 

Merci pour votre aide,


Jérémy Suchet

PS: Le #define est en dehors de la fonction main().


Attachment Erreur du #define.png
Attachment Ligne de code avec #define.png
In reply to Jérémy Suchet

Re: Principe d'abstraction et de réutilisation + erreur #define

by Ronan Boulic -

L'application du principe d'abstraction correspond à la décomposition du problème en sous-problèmes jusqu'à atteindre des tâches simples.

Le problème correspond à la fonction main() tandis que les sous-problèmes sont réalisés par des fonctions appelées par main() etc jusqu'à atteindre un niveau de décomposition où chaque fonction réalise une tâche simple.

Nous n'avons pas de restriction sur l'imbrication d'appels de fonctions sur la pile.

Attention, éviter les cas de décomposition extrème où une fonction peut être remplacée par une simple instruction.

Concernant le principe de ré-utilisation, il est possible qu'il ne soit pas utile pour votre projet. On doit le mettre en oeuvre si le même groupe d'instructions apparaît à plusieurs endroits dans votre code --> remplacer par des appels d'une même fonction, eventuellement avec des paramètres.

---

concernant votre problème avec define, je ne vois rien d'incorrect. regardez les lignes qui précèdent ce define. consultez aussi la bug checklist:

https://moodlearchive.epfl.ch/2018-2019/mod/resource/view.php?id=392381