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

Préprocesseur en C

kaxes
kaxes
Niveau 4
16 décembre 2010 à 18:50:14

Bonjour ,J'ai essayer dans un programme de remplacer l'instruction if par si en utilisant la ligne suivante :

  1. define si if

Serait-il possible que vous m'expliquez pourquoi ça ne marche pas ?

kaxes
kaxes
Niveau 4
16 décembre 2010 à 18:56:19
  • éssayé
  • m'expliquiez
Pocolo
Pocolo
Niveau 10
16 décembre 2010 à 19:02:54
  1. define sert juste a définir une constante (variable dont la valur ne change pas).

Une variable ne peut pas avoir une instruction C comme valeur. :fou:

kaxes
kaxes
Niveau 4
16 décembre 2010 à 19:26:30

Merci, je viens de réussir ce que je voulais faire

kaxes
kaxes
Niveau 4
16 décembre 2010 à 19:27:01

Avec un autre moyen

godrik
godrik
Niveau 30
16 décembre 2010 à 20:13:23

mmm, le preprocesseur est con comme ses pieds. Il permet de faire ce genre de chose...

caelacanthe
caelacanthe
Niveau 10
16 décembre 2010 à 21:04:08
  1. define lol ;
  2. define mdr ;

:oui:

  1. kaxes Voir le profil de kaxes
  2. Posté le 16 décembre 2010 à 19:27:01 Avertir un administrateur
  3. Avec un autre moyen

:d) comment?

guyver2
guyver2
Niveau 10
16 décembre 2010 à 21:19:49

@caelacanthe pas de ';' dans un #define, à moins bien sur que tu veuille définir mdr et lol comme des remplaçant de ';' :)

godrik
godrik
Niveau 30
16 décembre 2010 à 21:22:25

C'etait le but.
J'avais vu un programme C qui prennait une syntaxe pascal avec des BEGIN et des END :)

PaulAimik
PaulAimik
Niveau 10
16 décembre 2010 à 21:36:13

ca s'appel programmer contre le langage.

caelacanthe
caelacanthe
Niveau 10
16 décembre 2010 à 21:48:39
  1. guyver2 Voir le profil de guyver2
  2. Posté le 16 décembre 2010 à 21:19:49 Avertir un administrateur
  3. @caelacanthe pas de ';' dans un #define, à moins bien sur que tu veuille définir mdr et lol comme des remplaçant de ';' :)

:d) ca donne des code-source rigolos. :hap:

si ca se trouve, on peut traduire le langage en francais de cette manière. :(

  1. PaulAimik Voir le profil de PaulAimik
  2. Posté le 16 décembre 2010 à 21:36:13 Avertir un administrateur
  3. ca s'appel programmer contre le langage.

:d) ca s'appelle programmer détendu. :fier:

dnob700
dnob700
Niveau 10
16 décembre 2010 à 22:09:02

Le problème là venait, je pense, de l'utilisation ou non d'argument pour la macro.

Comme le dit godrik, le préprocessseur est con comme ses pieds. S'il attend une macro sans argument, alors il veut voir la macro sans argument. Et l'argument d'une macro est une parenthèse ouvrante qui suit _immédiatement_ la nom de la macro (sans espace). Donc si kaxes ecrit :
si(test)

alors le préprocesseur va voir un appel à si avec un argument et ne pas être heureux. Solution : mettre un espace entre "si" et "(test)".

dnob700
dnob700
Niveau 10
16 décembre 2010 à 22:18:25

"J'avais vu un programme C qui prennait une syntaxe pascal avec des BEGIN et des END :) "

Il y a quelques années [...] j'avais écrit un truc comme ça : un fichier d'en tête avec plein de macro qui permettait ensuite d'écrire du C avec une syntaxe très proche du basic (et une sémantique assez proche aussi, avec une gestion (minuscule) de la mémoire). Ça doit probablement traîner sur le forum.

le-chocolat
le-chocolat
Niveau 9
18 décembre 2010 à 00:19:08
  1. define EVER ;;

.
.
for(EVER)
{
..
..
}
:o))

caelacanthe
caelacanthe
Niveau 10
18 décembre 2010 à 00:20:45

hm, mignon celui-ci. :noel:

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