CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Macro récursive en C

morgancane
morgancane
Niveau 2
23 mai 2009 à 00:02:12

Salut à tous,

Je me demandais comment faire une macro récursive en C.

J'ai pas mal cherché mais je n'ai pas trouvé d'exemple clair qui marchait.
Si quelqu'un pouvait me donner un exemple clair.

Est-il possible de faire des boucles en macro préprocesseur ? par exemple de générer x fois une ligne de code.

Merci d'avance

chris_27
chris_27
Niveau 10
24 mai 2009 à 02:10:36

« par exemple de générer x fois une ligne de code. » :d) le seul moyen que je vois, c'est d'appeler x fois la commande pour pré-processer le fichier.

Cela dit, je doute que tu trouves un exemple de macro récursive qui serait nettement mieux qu'un code sans macro compilé avec la bonne option d'optimisation passée au compilateur. :-)

dnob700
dnob700
Niveau 10
24 mai 2009 à 09:54:45

Je n'ai pas du tout de référence en tête, mais ça existe. Ça ne sert généralement pas à grand chose car c'est assez limité, et c'est très vite immonde, mais il y a des techniques de calcul ou d'optimisation qui sont réalisées comme ça. Il y a déjà eu des exemples de telles choses postés ici ou sur création de jeux, mais ça ne sera pas simple à trouver.

morgancane
morgancane
Niveau 2
24 mai 2009 à 13:46:54

dnob700 > pour l'instant je n'ai pas trouvé d'exemple et pourtant j'ai pas mal cherché et effectivement je sais que ça existe.

Je sais très bien que le système que je cherche à utiliser n'est pas propre, mais ce n'est pas le problème.
Là je cherche à faire une macro récursive, pas à résoudre un problème d'une autre façon.

Merci tout de même pour les réponses

dnob700
dnob700
Niveau 10
24 mai 2009 à 16:44:39

Est-ce que tu peut soumettre ton problème ? Peut-être qu'une macro récursive est le bon moyen de le résoudre, mais peut-être aussi qu'il existe une méthode plus simple à laquelle tu n'as pas pensé (et même s'il faut passer par des macro, sans questions plus précise il était difficile de te dire quoi que ce soit).

morgancane
morgancane
Niveau 2
24 mai 2009 à 18:25:19

Le point de départ de cette réflexion, c'était un défi, faire le plus grand nombre d'erreurs de compilation (en nombre de ligne) avec un code source de moins de 100 caractères.

J'avais donc pensé aux macros récursives qui "gonfleraient" mon code, en copiant x fois une ligne avec une erreur.

Enfin vous avez peut être d'autres idées pour y arriver.

PS : c'est stupide comme jeu, mais bon ça demande plus de réflexions que ça en a l'air. Certains arrivent à faire plus de 150 000 lignes d'erreurs de compilation.

dnob700
dnob700
Niveau 10
24 mai 2009 à 19:47:11

Tout les compilo que je connais s'arrête assez vite après un certain nombre (prédéfini) d'erreur. Tu utilise quoi pour faire ça.

Tu peut essayer avec des macro pas récursive, mais qui s'appellerait de façon exponentielle (#define D(x) x;x;x;x; puis D(D(D(D(ici une erreur))))). Mais je ne vois pas mieux là comment faire.

morgancane
morgancane
Niveau 2
24 mai 2009 à 20:17:22

Ah bien joué.

J'avais pensé à des appels récursifs mais pas à des appels exponentiels comme toi.
Ca marche bien, on arrive vite à des centaines de milliers d'erreurs.

J'utilise gcc tout simplement pour tester, et ça lui pose pas trop de problèmes d'avoir autant d'erreurs.

Merci beaucoup

Pseudo supprimé
Pseudo supprimé 24 mai 2009 à 22:19:19

si tu utilisais un vrai compilateur aussi.... :honte:

:dehors:

dnob700
dnob700
Niveau 10
24 mai 2009 à 23:13:57

je ne sais pas à qui tu répondais mais, dans les deux cas, trôller, c'est mal...

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment