Syntaxe if en C

Résolu
Bonjour,

voilà j'aimerai utiliser un if de la manière la plus réduite possible.

J'ai donc écrit cela:

int trouve = 0;
(trouve) ? return 1 : return 0;

mais le compilateur me dit : expected expression before ‘return’

alors j'ai essayé :
int trouve = 0;
(trouve==1) ? return 1 : return 0;

mais j'ai la même erreur.

Est il possible d'utiliser la syntaxe " ? : " pour un if en C?
Configuration: Linux
Firefox 3.0.15

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. RTFM!

    le ? est un opérateur ternaire !

    la syntaxe serait plutot return trouve ? 1 : 0;
    mais ce serait plus simple de faire return trouve;
    1. hum pourtant d'après cette page :https://www.commentcamarche.net/contents/186-langage-c-les-structures-conditionnelles
      c'est possible d'utiliser cette syntaxe... alors où est mon erreur?
      1. Ah oui ok ^^

        merci.

        j'ai mis cet exemple pour faire plus simple, je ne l'utilise pas exactement comme cela dans mon code ;)
        sinon oui j'aurai fais return trouve.

        merci pour ton aide!
        1. if est une instruction
          ? est un opérateur
          au même titre que + ou &&
          1. Oui je savais que ? était un opérateur.

            mais dans ma tête : (condition) ? instruction si vrai : instruction si faux , je m'étais dit que return 1 était une instruction... d'habitude je ne l'utilise pas avec return alors ça marche.

            genre : (trouve) ? printf("1") : printf("0");

            juste une petite confusion avec le return...