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 :

CUDA C et les struct


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 18
    Points : 11
    Points
    11
    Par défaut CUDA C et les struct
    Bonjour,

    je suis en train de lire "Cuda by example", et je viens de tomber sur le code suivant:

    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
    struct cuComplex
    {
        float  r;
        float  i;
        cuComplex( float a, float b ) : r(a), i(b) {}
        float magnitude2( void ) { return r * r + i * i; }
        cuComplex operator*(const cuComplex& a)
        {
            return cuComplex(r*a.r - i*a.i, i*a.r + r*a.i);
        }
        cuComplex operator+(const cuComplex& a)
        {
            return cuComplex(r+a.r, i+a.i);
        } 
    };
    Ça compile et ça tourne. On dirait une classe C++. Mais je n'ai jamais vu pareille chose ni en C, ni en C++. Peut-on me confirmer que ce n'es ni du C ni du C++?
    Je ne trouve pas non plus de chose similaires dans la doc de CUDA. Quelqu'un peut-il me dire d'où ça sort?

    D'autre part, "cuComplex( float a, float b ) : r(a), i(b) {}" ressemble à une sorte de constructeur mais le fonctionnement de cette partie " : r(a), i(b)" n'est pas très clair pour moi...

  2. #2
    Membre confirmé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Points : 594
    Points
    594
    Par défaut
    C'est tout simplement l'implémentation des nombres complexes en C++.

    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
     
    // structure d un nombre complexe
    // attention en C++ structures et classes sont equivalents à la difference que tout est public pour une stucture
    struct cuComplex
    {
        // partie réelle
        float  r;
        // partie imaginaire
        float  i;
        // constrcuteur par defaut avec liste d'initialisation " : r(a), i(b)"
        cuComplex( float a, float b ) : r(a), i(b) {}
        // carrée du module d un nombre complexe
        float magnitude2( void ) { return r * r + i * i; }
        // surcharge operateur * : pour pouvoir faire n1*n2
        cuComplex operator*(const cuComplex& a)
        {
            return cuComplex(r*a.r - i*a.i, i*a.r + r*a.i);
        }
        // surcharge operateur + : pour pouvoir faire n1+n2
        cuComplex operator+(const cuComplex& a)
        {
            return cuComplex(r+a.r, i+a.i);
        } 
    };

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    D'accord ça y ressemble, ce qui me trouble c'est l'emploi du mot clef "struct" à la place de "class"...

  4. #4
    Membre confirmé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Points : 594
    Points
    594
    Par défaut
    J'ai ajouté des commentaires.
    En C++, structures et classes sont équivalents.

    Concernant CUDA et le C++:
    http://fr.scribd.com/doc/106721272/1...age-Constructs

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par LinuxUser Voir le message
    J'ai ajouté des commentaires.
    En C++, structures et classes sont équivalents.
    Ok, ce simple fait est une surprise pour moi!
    Merci pour ces éclaircissements.

  6. #6
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 196
    Points : 17 165
    Points
    17 165
    Par défaut
    Citation Envoyé par Florimond Voir le message
    Ok, ce simple fait est une surprise pour moi!
    Merci pour ces éclaircissements.
    Pour être tout à fait précis, les seules différences entre struct et class sont le type de privauté initial.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    class C : Base{
    int a;}
    s'explicite par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class C : private Base{
    private:
    int a;}
    tandis que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    struct C : Base{
    int a;}
    s'explicite par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    struct C : public Base{
    public:
    int a;}

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

Discussions similaires

  1. question sur les Struct et les tableaux
    Par deubelte dans le forum C++
    Réponses: 2
    Dernier message: 25/05/2008, 14h20
  2. Réponses: 15
    Dernier message: 22/09/2007, 16h28
  3. aide dans les struct svp
    Par mitherkiller dans le forum C
    Réponses: 8
    Dernier message: 30/03/2007, 10h23
  4. Centraliser les struct dans un fichier
    Par Invité dans le forum C
    Réponses: 5
    Dernier message: 06/07/2006, 10h01

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