Miksi tämä ei toimi

Ei toimi
y = x[i] = 2345;

Toimii
x[i] = y = 2345;

Miksi tuo ylempä ei toimine?
Ei anna virhet, mut ei ota arvojakaan vastaan.
4474
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

assembler listaus esiin, ja katso mitä kääntäjä touhuaa. vaikuttaa pahasti kääntäjän bugilta. Kannattaa myös hommata servicepackki/päivitys kääntäjään. Joskus jos optimoinnit ovat päällä rivejä katoaa, kääntäjän muka optimoidessa niitä.

Mitä tyyppiä muuttujat ovat ? Mikä on kääntäjä ?

Äänestä
  • IDE on Dev-C 4.9.9.2 joten kääntäjä taitaa olla GCC. WinXP alustana. Muuttujat ovat int, paitsi x joka oli vahingossa bool, se tän ongelman aiheuttikin. Nyt toimii oikein kun vaihdoin x tyypiksi int. Vaikka alempakaan ei varsinaisesti oikein toiminu, niin virhe ei ollut yhtäiso ohjelmas, joten sitä en huomannu.


    Miksköhän kääntäjä ei voinut älähtää moisest virheest, ei olis tarttenu etsiä tuommosta tyhmää virhet montaa tuntia ;)

    Äänestä

  • 12462 kirjoitti:

    IDE on Dev-C 4.9.9.2 joten kääntäjä taitaa olla GCC. WinXP alustana. Muuttujat ovat int, paitsi x joka oli vahingossa bool, se tän ongelman aiheuttikin. Nyt toimii oikein kun vaihdoin x tyypiksi int. Vaikka alempakaan ei varsinaisesti oikein toiminu, niin virhe ei ollut yhtäiso ohjelmas, joten sitä en huomannu.


    Miksköhän kääntäjä ei voinut älähtää moisest virheest, ei olis tarttenu etsiä tuommosta tyhmää virhet montaa tuntia ;)

    bool arvohan on 1 tai 0

    Jos alustat vaikkapa:
    bool x = 1; //kelpaa hyvin
    toisaalta
    bool x = "merkkijono"; //ei käy

    Äänestä

  • 12462 kirjoitti:

    IDE on Dev-C 4.9.9.2 joten kääntäjä taitaa olla GCC. WinXP alustana. Muuttujat ovat int, paitsi x joka oli vahingossa bool, se tän ongelman aiheuttikin. Nyt toimii oikein kun vaihdoin x tyypiksi int. Vaikka alempakaan ei varsinaisesti oikein toiminu, niin virhe ei ollut yhtäiso ohjelmas, joten sitä en huomannu.


    Miksköhän kääntäjä ei voinut älähtää moisest virheest, ei olis tarttenu etsiä tuommosta tyhmää virhet montaa tuntia ;)

    gcc kääntäjän asetus -Wall ymärtääkseni pitäisi varoitaa asiasta...

    Kanattaa lisäksi kokeilla koodin tarkastaja
    http://www.splint.org/ (ilmainen) tai http://www.gimpel.com/ etsivät yleisempiä mokia.

    Äänestä

Kommentoi aloitusta


12462 kirjoitti:

Ei toimi
y = x[i] = 2345;

Toimii
x[i] = y = 2345;

Miksi tuo ylempä ei toimine?
Ei anna virhet, mut ei ota arvojakaan vastaan.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu