Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Structure C

Structure C

Dans ce didacticiel, vous découvrirez les types de structures en programmation C à l'aide d'exemples.

En programmation C, un struct (ou structure) est une collection de variables (peuvent être de différents types) sous un nom unique.

Définir les structures

Avant de pouvoir créer des variables de structure, vous devez définir son type de données. Pour définir une structure, le struct mot-clé est utilisé.

Syntaxe de la structure

struct structureName {
  dataType member1;
  dataType member2;
  ...
};

Par exemple,

struct Person {
  char name[50];
  int citNo;
  float salary;
};

Ici, un type dérivé struct Person est défini. Maintenant, vous pouvez créer des variables de ce type.

Créer des variables de structure

Lorsqu'un struct type est déclaré, aucun stockage ou mémoire n'est alloué. Pour allouer de la mémoire d'un type de structure donné et travailler avec, nous devons créer des variables.

Voici comment nous créons des variables de structure :

struct Person {
  // code
};

int main() {
  struct Person person1, person2, p[20];
  return 0;
}

Une autre façon de créer un struct variable est :

struct Person {
   // code
} person1, person2, p[20];

Dans les deux cas,

  • personne1 et personne2 sont struct Person variables
  • p[] est un struct Person tableau de taille 20.

Accéder aux membres d'une structure

Il existe deux types d'opérateurs utilisés pour accéder aux membres d'une structure.

  1. . - Opérateur membre
  2. -> - Opérateur de pointeur de structure (sera abordé dans le prochain tutoriel)

Supposons que vous souhaitiez accéder au salaire de personne2 . Voici comment vous pouvez le faire.

person2.salary

Exemple 1 :Structures C++

#include <stdio.h>
#include <string.h>

// create struct with person1 variable
struct Person {
  char name[50];
  int citNo;
  float salary;
} person1;

int main() {

  // assign value to name of person1
  strcpy(person1.name, "George Orwell");

  // assign values to other person1 variables
  person1.citNo = 1984;
  person1. salary = 2500;

  // print struct variables
  printf("Name: %s\n", person1.name);
  printf("Citizenship No.: %d\n", person1.citNo);
  printf("Salary: %.2f", person1.salary);

  return 0;
}

Sortie

Name: George Orwell
Citizenship No.: 1984
Salary: 2500.00

Dans ce programme, nous avons créé un struct nommé Person . Nous avons également créé une variable de Person nommé person1 .

En main() , nous avons attribué des valeurs aux variables définies dans Person pour la personne1 objet.

strcpy(person1.name, "George Orwell");
person1.citNo = 1984;
person1. salary = 2500;

Notez que nous avons utilisé strcpy() fonction pour attribuer la valeur à person1.name .

C'est parce que nom est un char array (C-string) et nous ne pouvons pas utiliser l'opérateur d'affectation = avec elle après avoir déclaré la chaîne.

Enfin, nous avons imprimé les données de person1 .

Type de mot clé

Nous utilisons le typedef mot-clé pour créer un nom d'alias pour les types de données. Il est couramment utilisé avec les structures pour simplifier la syntaxe de déclaration des variables.

Par exemple, regardons le code suivant :

struct Distance{
  int feet;
  float inch;
};

int main() {
  struct Distance d1, d2;
}

Nous pouvons utiliser typedef pour écrire un code équivalent avec une syntaxe simplifiée :

typedef struct Distance {
  int feet;
  float inch;
} distances;

int main() {
  distances d1, d2;
}

Exemple 2 :typedef C++

#include <stdio.h>
#include <string.h>

// struct with typedef person
typedef struct Person {
  char name[50];
  int citNo;
  float salary;
} person;

int main() {

  // create  Person variable
  person p1;

  // assign value to name of p1
  strcpy(p1.name, "George Orwell");

  // assign values to other p1 variables
  p1.citNo = 1984;
  p1. salary = 2500;

  // print struct variables
  printf("Name: %s\n", p1.name);
  printf("Citizenship No.: %d\n", p1.citNo);
  printf("Salary: %.2f", p1.salary);

  return 0;
}

Sortie

Name: George Orwell
Citizenship No.: 1984
Salary: 2500.00

Ici, nous avons utilisé typedef avec le Person structure pour créer un alias person .

// struct with typedef person
typedef struct Person {
  // code
} person;

Maintenant, nous pouvons simplement déclarer un Person variable utilisant le person alias :

// equivalent to struct Person p1
person p1;

Structures imbriquées

Vous pouvez créer des structures au sein d'une structure en programmation C. Par exemple,

struct complex {
  int imag;
  float real;
};

struct number {
  struct complex comp;
  int integers;
} num1, num2;

Supposons que vous souhaitiez définir image de num2 variable à 11 . Voici comment procéder :

num2.comp.imag = 11;

Exemple 3 :Structures imbriquées C++

#include <stdio.h>

struct complex {
  int imag;
  float real;
};

struct number {
  struct complex comp;
  int integer;
} num1;

int main() {

  // initialize complex variables
  num1.comp.imag = 11;
  num1.comp.real = 5.25;

  // initialize number variable
  num1.integer = 6;
	
  // print struct variables
  printf("Imaginary Part: %d\n", num1.comp.imag);
  printf("Real Part: %.2f\n", num1.comp.real);
  printf("Integer: %d", num1.integer);

  return 0;
}

Sortie

Imaginary Part: 11
Real Part: 5.25
Integer: 6

Pourquoi des structures en C ?

Supposons que vous souhaitiez stocker des informations sur une personne :son nom, son numéro de citoyenneté et son salaire. Vous pouvez créer différentes variables nom , citNo et salaire pour stocker ces informations.

Que faire si vous avez besoin de stocker les informations de plusieurs personnes ? Maintenant, vous devez créer différentes variables pour chaque information par personne :name1 , citNo1 , salaire1 , nom2 , citNo2 , salaire2 , etc.

Une meilleure approche serait d'avoir une collection de toutes les informations connexes sous un seul nom Person structurez-la et utilisez-la pour chaque personne.

En savoir plus sur la structure

  • Structures et pointeurs
  • Passer des structures à une fonction

Langue C

  1. C# Hello World - Votre premier programme C#
  2. Mots-clés et identifiants C#
  3. Variables C# et types de données (primitifs)
  4. Opérateurs C#
  5. Opérateurs de bits et de décalage de bits C#
  6. Entrée et sortie de base C#
  7. Expressions, instructions et blocs C# (avec exemples)
  8. Commentaires C#
  9. Instruction de commutateur C #