Javasta kun puuttuu precompiler kokonaan niin miksei definen ja typedefin tilalle ole rakennettu mitään? Jos esimerkiksi pitää tulostaa paljon tekstiä niin
#define NEWLINE \n
lähdekoodin alussa olisi varsin kiva juttu! Muuten joutuu kutsumaan System.out.println aika moneen kertaan.
Miksei Javassa ole defineä?
14
2888
Vastaukset
- limanuljaskalle
Hohhoijaati. älä kuse ohjelmakoodeeille.
kakissa on rajoteensa ja Tietyt tutvallisuus jutut. koetapas esim. google hakua "c preprocessor hell" ja nauti!
Sen jälkeen ehkä ymmärrät, miksi näitä ei otettu javaan mukaan..- Anonyymi
Ei liity mitenkään avaukseen.
- Anonyymi
code_red kirjoitti:
Liittyy hyvinkin keskeisesti
Aivan yhtä paljon kun rintaliiviesi koko.
- Anonyymi
Copypastaamaninen on hyvin yksinkertaista.
- Anonyymi
Mielestäni \n on nopeampi kirjoittaa kuin huutaa NEWLINE.
System.out.println:n saa taas nopeasti kirjoittamalla sout ja painamalla tabulaattoria.- Anonyymi
En tiedä miten on nykyisin mutta joskus ennen \n (newline) ei toiminut Windowsissa jossa sen pitää olla \r (return) ja tuo ei taas toimi Linuxissa ja Macissa. Toisaalta nuo makrot luovat enemmän ongelmia kuin ratkovat niitä. Olen joskus niitä käyttänyt paljonkin C kielen kanssa ja lopputulema on se että koodi ei ole sellaisenaan uudelleenkäytettävissä muissa projekteissa. Makroja ei pitäisi käyttää siitä syystä ollenkaan vaan käyttää standardoitua kieltä aina ja poikkeuksetta. Itseasiassa jopa typedef on uskomattoman typerä idea juuri siksi että koodia ei voi sellaisenaan uudelleenkäyttää. Ainoan poikkeuksen luo tuollainen NEWLINE makro koska se käsittelee tulostettavaa tekstiä jota ei ole tarkoitus käyttää missään muualla uudestaan. Mutta ongelma on ratkaistavissa yhden ylimääräisen muuttujan avulla.
- Anonyymi
Anonyymi kirjoitti:
En tiedä miten on nykyisin mutta joskus ennen \n (newline) ei toiminut Windowsissa jossa sen pitää olla \r (return) ja tuo ei taas toimi Linuxissa ja Macissa. Toisaalta nuo makrot luovat enemmän ongelmia kuin ratkovat niitä. Olen joskus niitä käyttänyt paljonkin C kielen kanssa ja lopputulema on se että koodi ei ole sellaisenaan uudelleenkäytettävissä muissa projekteissa. Makroja ei pitäisi käyttää siitä syystä ollenkaan vaan käyttää standardoitua kieltä aina ja poikkeuksetta. Itseasiassa jopa typedef on uskomattoman typerä idea juuri siksi että koodia ei voi sellaisenaan uudelleenkäyttää. Ainoan poikkeuksen luo tuollainen NEWLINE makro koska se käsittelee tulostettavaa tekstiä jota ei ole tarkoitus käyttää missään muualla uudestaan. Mutta ongelma on ratkaistavissa yhden ylimääräisen muuttujan avulla.
Sehän riippuu siitä mitä haluaa. Tuo \r (carriage return) palauttaa kursorin rivin alkuun ja \n (line feed) siirtää kursorin alas, mutta *nix-järjestelmissä myös lisäksi palauttaa kursorin rivin alkuun. Yhdistelmä \r\n tekee Windowsissa molemmat. https://en.wikipedia.org/wiki/Newline
- Anonyymi
Anonyymi kirjoitti:
En tiedä miten on nykyisin mutta joskus ennen \n (newline) ei toiminut Windowsissa jossa sen pitää olla \r (return) ja tuo ei taas toimi Linuxissa ja Macissa. Toisaalta nuo makrot luovat enemmän ongelmia kuin ratkovat niitä. Olen joskus niitä käyttänyt paljonkin C kielen kanssa ja lopputulema on se että koodi ei ole sellaisenaan uudelleenkäytettävissä muissa projekteissa. Makroja ei pitäisi käyttää siitä syystä ollenkaan vaan käyttää standardoitua kieltä aina ja poikkeuksetta. Itseasiassa jopa typedef on uskomattoman typerä idea juuri siksi että koodia ei voi sellaisenaan uudelleenkäyttää. Ainoan poikkeuksen luo tuollainen NEWLINE makro koska se käsittelee tulostettavaa tekstiä jota ei ole tarkoitus käyttää missään muualla uudestaan. Mutta ongelma on ratkaistavissa yhden ylimääräisen muuttujan avulla.
Windowsissa käytetään \r\n.
C# on java paremmin toteutettuna.
- Anonyymi
Voit aina kehitellä oman preprocessorisi joka parsettaa koodisi ja prosessoi #define direktiivillä olevat statementit. Prosessoitu lähdekoodi menee Java-kääntäjälle. Helppoa.
- Anonyymi
code_red kirjoitti:
Ja aina voi kehittää oman ohjelmointikielen, jossa on preprosessori. Helppoa :)
Kuinka paljon ihmiset noin yleensä välttelevät seuraasi. Minua ainakin oksettaa teikäläinen siinä määrin että oli pakko kysyä.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Suomen markka otettiin käyttöön vuonna 1860
Suomi käytti vuoteen 1840 asti rahayksikkönään rinnakkain Ruotsin riikintaalareita ja Venäjän ruplaa. Tämän jälkeen oli133192Vassarit kummittelee pääni sisällä joulunakin
Hetki sitten alkoi punakapina. Joulupäivään mennessä ollaan jo Lindtmanin nuoruusvuosien näytelmäkerhossa. Tapaninpäivän652922Oho, köyhyys väheni Marinin hallituskaudella
👋💥🤕 Tuonkin Marinin hallitus sössi --- Vuosien 2019–2023 sosiaaliturva- ja verotusperusteiden muutokset suhteessa h1292585"Mä elän vieläkin"
Ikurin turbiini vetäisi taannoin lainabiisin Topin (RIP också) ja kumppaneiden kanssa. Toivottavasti on yläkerrassa kunn171942Kylläpä asiat onkin nyt hyvin verrattuna Sannan aikaan
Sannan aikana aähkön alv oli 10%, nyt 25,5%. Ajatelkaa nytkin pörssisähkö on ilmaista, keskellä talvea! Bensan hinta on111804Yksityinen sektori aiheuttanut Suomen taantuman
Investointien sijasta nostaneet voitot osinkoina omistajille. Ehdotan korjausliikkeenä yksityisen sektorin sosialisoimi181706Ukrainan raukkamainen isku Moskovaan.
Pitikö isku tehdä juuri jouluna.Siinä saattoi jäädä joku lapsi isättömäksi.Kyseessä ei edes sotilaskohde.3681543En tiedä mitä olet mulle
Rakkauteni,ihastukseni,pakkomielteeni,mitä lie. Jokatapauksessa ajattelen sinua päivittäin lämmöllä ja haluan toivottaa611476On mullakin
Sua ikävä. En vain pysty siihen mitä toivot. Siksi toivon joskus että voisin vain olla hetken lähelläsi711184- 221181