Kerto/osoitin merkin välttö

c:ssa tehtiin suunnitteluvirhe (ehkä joskus 1960-1970-luvuilla) kun sama tähtimerkki * laitettiin osoittimen ja kertomisen merkiksi eli * on homonyymi.

Onko tehty (tai yritetty tehdä) mitään standardia funktiosta joka korvaa *-merkin käytön kertolaskussa, jotta sekaantumisten vaara vähenee ja myös haku helpottuu?

Tai tehkää ehdotus sellaisesta funktiosta, senhän pitäisi olla hyvin lyhyt. Samalla voi tehdä jotain paremmin: Samalla funktiolla voisi kertoa vaikka samankokoisten vectorien alkiot keskenään pareittain, ihan samalla syntaksilla.

hmmm entä jos funktiolle syötetään enemmän kuin 2 parametria ja ne ovat vielä eri tyyppejä, ja funktio on cout:in sisällä, niin mitä tyyppiä on vastaus? Ehkä tällaisten säätöä varten tarvitaan olio...
5429
Äänestä

Muut lukivat myös

Vastaukset 5

Vanhimmat

Ennemmin suosittelen välttämään niitä osoittimia kuin kertolaskua.

Äänestä

Semantiikka juttuja. Itse C-kääntäjä pystyy helposti toteamaan onko kyseessä osoitus muistipaikkaan vai laskutoimituksen suoritus. Tosin koodarien silmät ovat kovilla, kun joku "guru" alkaa tekemään sekä laskutoimituksia ja osoittimeen sijoituksia samassa lauseessa. C:ssä kun pitää muistaa ulkoa vielä eri operaatioiden suoritusjärjestys toisiinsa.

*m = *n * 2;

Tälläiset esitykset eivät siis ymmärrettävästi ole kovin suositeltavia. Edes sulkujen käyttäminen ei tahdo tehdä niistä erityisesti silmää hiveleviä ja virheitä tuollaisessa asettelussa tulee todella helposti.

Onhan noissa ohjelmointikielissä ollut merkkivalintojen suhteen aina muutakin kismaa eli esimerkiksi tulisiko jakomerkki olla / vai \ vai peräti |.

Äänestä

C-kieli ei ole täydellinen, kaukana siitä. Tämä on hyvä aina muistaa.

C-koodarien keisari Linus Torvalds:
"Some people seem to think that C is a real programming language, but they are sadly mistaken. It really is about writing almost-portable assembly language,..."

Alkeellista, hyvin alkeellista my dear Watson. Josta taatusti tulee haittaa mutta myös hyötyä. Terävä puukko ei ole turvallinen.

Äänestä

Linus:
"C is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much easier to generate total and utter crap with it. Quite frankly, even if the choice of C were to do *nothing* but keep the C programmers out, that in itself would be a huge reason to use C."

Menee hauskasti hieman överiksi, mutta kannattaa muistaa että ongelmia riittää, mutta suorituskyky on niin jees, että...

Äänestä
  • Aika pöllpäistä puhetta henkilöltä, joka käyttää keskimääräistä enemmän koneita, jotka tekevät triviaaleja ja työläitäkin asioita hänen puolestaan. Polkupyörän keksijät ovat tosin oma rotunsa ja tämän vuoksi heille on täysin turha yrittää kertoa, että Linuksissakin on funktioita ja parametrejä, joita kukaan muu kuin funktion tai parametrin ceellä ohjelmoija ei ole koskaan eli toista kertaa käyttänyt, mutta tämä ei tarkoita sitä, etteiko joku toinen myöhemmin tai ennemmin ceellä ohjelmoiva olisi voinut keksiä sitä uudelleen.

    Äänestä

Kommentoi aloitusta


Deopuk kirjoitti:

c:ssa tehtiin suunnitteluvirhe (ehkä joskus 1960-1970-luvuilla) kun sama tähtimerkki * laitettiin osoittimen ja kertomisen merkiksi eli * on homonyymi.

Onko tehty (tai yritetty tehdä) mitään standardia funktiosta joka korvaa *-merkin käytön kertolaskussa, jotta sekaantumisten vaara vähenee ja myös haku helpottuu?

Tai tehkää ehdotus sellaisesta funktiosta, senhän pitäisi olla hyvin lyhyt. Samalla voi tehdä jotain paremmin: Samalla funktiolla voisi kertoa vaikka samankokoisten vectorien alkiot keskenään pareittain, ihan samalla syntaksilla.

hmmm entä jos funktiolle syötetään enemmän kuin 2 parametria ja ne ovat vielä eri tyyppejä, ja funktio on cout:in sisällä, niin mitä tyyppiä on vastaus? Ehkä tällaisten säätöä varten tarvitaan olio...

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