Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C, Pascal: Taulukon tyypitys (c )

pasu [12.04.2005 19:26:37]

#

Pascalilla olen tehnyt liikevaihto -ohjelman ja nyt koitan kääntää sitä C:lle, mutta joitain epäkohtia on jotka on jäänyt tunneilla käymättä. Oletettavasti nämä kuitenkin C:lläkin onnistuvat.
Ongelma tuossa kuinka saan C:llä määritettyä intTaulukko tyyppisen muuttujan?

Pascal -versio:

type

intTaulukko = array[1..12] of integer;

tietueLiikevaihto = record
Vuosi : Integer;
Esimies : String[20];
liikevaihtoKK : intTaulukko;
end;

lTaulukko = array[1..lmax] of tietueliikevaihto;

C -versio: ???

struct tietueliikevaihto
{
int vuosi;
char esimies[nimi_max+1];
// intTaulukko liikevaihtoKK; ???
}h;

struct tietueliikevaihto lTaulukko[lmax];

sqwiik [12.04.2005 19:38:04]

#

Määritä liikevaihtoKK suoraan taulukkona

typedef struct{
int vuosi;
char esimies[nimi_max+1];
int liikevaihtoKK[12];
}tietueliikevaihto;

Tai jos haet tapaa, jolla voi määritellä sen useaan paikkaan mutta muuttaminen vain yhdestä paikasta, niin käytä vaikka toista structia tai makroa:

/* struct */
typedef struct{
  int arvot[12];
}intTaulukko;

typedef struct{
int vuosi;
char esimies[nimi_max+1];
intTaulukko liikevaihtoKK;
}tietueliikevaihto;

/* ..jolloin osoittaminen tapahtuu sitten esim.
   ITaulukko[x].liikevaihtoKK.arvo[0]...
*/

/* Makro */
#define intTaulukko(nimi) (int nimi[12])

typedef struct{
int vuosi;
char esimies[nimi_max+1];
intTaulukko(liikevaihtoKK);
}tietueliikevaihto;

/* Jolloin rakenteessa on liikevaihtoKK-taulukko, jossa on 12 alkiota. */

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta