0
votes

Est-il possible d'utiliser deux structures différentes dans le même code?

Je dois ajouter une autre structure à mon code et je souhaite savoir si cela est possible? Vous trouverez ci-dessous un extrait de ce que je veux faire.

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include "math.h"
#define MAX_CARS 10

struct car {
  double vel, position, desired_vel;
  int index, on_network;
};
typedef struct car Car;

struct car_2 {
  double vel_2, position_2, desired_Vel_2;
  int index, on_network;
};

typedef struct car_2 Car_2;

c

6 commentaires

Vous pouvez utiliser autant de structures différentes que vous le souhaitez. La question est de savoir combien de sens que cela fait, par exemple dans votre exemple, ils sont tous deux la même structure avec des noms différents, de sorte que cela semble assez inutile.


Oui, vous pouvez avoir plusieurs structures.


Avoir une deuxième structure qui a exactement les mêmes champs que le premier semble complètement inutile. Qu'est-ce que vous en fait essayer d'atteindre? Peut-être que c'est un XY Problème


Je pense que vous préférez avoir deux variables du même type de structure: Car1; Voiture car2;


Bonjour, comme d'autres personnes ont écrit, oui, vous pouvez, mais c'est un complètement inutile dans le cas si elles sont identiques, vous pouvez l'imaginer comme modèle, vous pouvez donc créer une instance «objet» avec un nom différent, du même modèle. , c'est le point que tu devrais aller :)


Si votre question est sur la question de savoir si vous pouvez passer un car_2 à une fonction qui attend un voiture ou vice versa, la réponse officielle est "non; ce sont des types différents". Le compilateur appliquera que si vous le laissez - si vous codez dans MODERN (POST-1990) C.


3 Réponses :


5
votes

Vous pouvez avoir des types de struct illimités dans votre code. Dans ce cas, comme ils sont identiques, vous pouvez réutiliser votre structure de voiture et faire des instances séparées avec elle.

Car car1;
Car car2;
car1.vel = 5.0;
car2.vel = 10.0;


1 commentaires

Je ne suis pas sûr que vous répondiez à la question, même si vous avez peut-être répondu à la question X qui est derrière la Y One, comme suspecté @jabberwocky.



0
votes

Oui, vous pouvez utiliser autant que vous le souhaitez. Exemple de code ci-dessous:

#include <stdio.h>
struct car_dim
{
    int feet;
    float inch;
} card;

struct showroom_loc
{
    int lid;
    int pin;
} carl;

int main()
{
    printf("enter the information for card struct\n");

    printf("Enter feet: \n");
    scanf("%d", &card.feet);

    printf("Enter inch: \n");
    scanf("%f", &card.inch);

    printf("enter the information for car location struct\n");

    printf("enter lid e\n");    
    scanf("%d", &carl.lid);

    printf("Enter pin: \n");
    scanf("%f", &carl.pin);

    printf("struct card= %d\'-%.1f\"", card.feet, card.inch);        
    printf("\nstruct carl= %d\'-%.1f\"", carl.lid, carl.pin);
    return 0;
}


0 commentaires

0
votes

Vous pouvez utiliser autant de structures dans votre code comme vous le souhaitez tant que leur nom est différent.

Cependant dans votre exemple, les membres de vos structures sont identiques, peut-être que vous voulez faire quelque chose comme ça? xxx


0 commentaires