IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Différend sur une question de macros


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 4
    Par défaut Différend sur une question de macros
    Bonjour à la communauté.

    J'aurais besoin de l'avis de spécialistes du C, pour une petite question présentée comme suit:
    Nom : connard vide.jpg
Affichages : 133
Taille : 27,1 Ko
    Que faut-il mettre? Je suis pratiquement certain de ma réponse, mais j'aurai besoin d'une confirmation de quelqu'un "d'expérimenté" sur le sujet.
    Je me rend bien compte que la question est relativement basique, mais si quelqu'un pouvait confirmer la vraie réponse, ça m'ôterait un poids énorme sur la conscience!

    Merci d'avoir lu!

  2. #2
    Membre Expert
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Par défaut
    Bonjour,
    Donne nous ta réponse et nous te dirons si elle est correcte ou non.

  3. #3
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 770
    Par défaut
    Un développeur n'a pas d'ordi pour tester le truc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    #include <iostream>
     
    #define SQUARE(X) X*X
     
    #define SQUARE_1(X) ((X)*(X))
     
     
    int main(int /*argc*/, char* /*argv*/[]
    {
        int c = 5, count = 1, res;
     
        res = SQUARE(c + 1); 
     
        if (res == 36) {
            std::printf("Test %d - SQUARE 6*6: success\n", count);
        } else {
            std::printf("Test %d - SQUARE 6*6: fail, value: %d\n", count, res);
        }
     
        ++count;
     
        res = SQUARE_1(c + 1);
     
        if (res == 36) {
            std::printf("Test %d - SQUARE_1:   success\n", count);
        } else {
            std::printf("Test %d - SQUARE_1:   fail, value: %d\\n", count, res);
        }
     
        return 0;
    }

    Édit: j'ai été trop vite pour poster

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 4
    Par défaut
    J'aurais préféré recevoir la réponse avant de la donner, mais d'accord

    Pour moi, y = c+1*c+1

    La seule raison étant que dans la macro, aucune parenthèse n'a été fournie.

  5. #5
    Membre Expert
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Par défaut
    Citation Envoyé par Revahn Voir le message
    J'aurais préféré recevoir la réponse avant de la donner, mais d'accord

    Pour moi, y = c+1*c+1

    La seule raison étant que dans la macro, aucune parenthèse n'a été fournie.
    Correct. Mais même avec des parenthèses ça ne fonctionne pas à tous les coups → CARRE(c++).
    Il vaut mieux préférer les fonctions aux macros pour ce genre de chose.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 4
    Par défaut
    Citation Envoyé par picodev Voir le message
    Correct. Mais même avec des parenthèses ça ne fonctionne pas à tous les coups → CARRE(c++).
    Il vaut mieux préférer les fonctions aux macros pour ce genre de chose.
    Je suis d'accord, mais bon, je ne répond qu'aux questions qu'on me pose...
    Et merci beaucoup. Vraiment.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 4
    Par défaut
    Citation Envoyé par foetus Voir le message
    Un développeur n'as pas d'ordi pour tester le truc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #include <iostream>
     
    #define SQUARE(X) X*X
     
    #define SQUARE_1(X) (X*X)
     
     
    int main(int /*argc*/, char* /*argv*/[]
    {
        int c = 5, count = 1;
     
        if (SQUARE(C + 1) == 36) {
            std::printf("Test %d: success\n", count);
        } else {
            std::printf("Test %d: fail\n", count);
        }
     
        ++count;
     
        if (SQUARE_1(C + 1) == 36) {
            std::printf("Test %d: success\n", count);
        } else {
            std::printf("Test %d: fail\n", count);
        }
     
        return 0;
    }
    J'ai bien moi-même créé un code afin de tester aussi, mais bon, c'est plus une affaire d'honneur que de programmation pour tout dire...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Aide sur une question de test blanc
    Par tareksey dans le forum SQL
    Réponses: 2
    Dernier message: 07/08/2012, 11h44
  2. aide sur une Question (..de spécialité différente)
    Par samgan dans le forum Langage SQL
    Réponses: 7
    Dernier message: 18/11/2010, 14h35
  3. Besoin d'explication sur une question de syntaxe
    Par Cynthia. dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 25/10/2010, 17h22
  4. Renseignement sur une question
    Par The_link dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 05/05/2008, 20h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo