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
2844
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
Karhuryhmä
Kellään tarkempaa tietoa miksi ja missä karhuryhmä ollut? Perheväkivaltaa vai huumeperintää kenties taas?303562- 963256
Raisionkaaren koira hyökkäys
Taas nähtiin että koiriin ei voi luottaa. Eilen illalla vapaana ollut koira hyökkäsi Raisionkaarella kolmen henkilön kim893097- 773078
"Mielipide: Äärivasemmiston uhka on otettava vakavasti"
Demokratia näyttäisi olevan Halla-aholle enemmänkin välttämätön paha kuin tavoiteltava asia. Väkivallan ihannointi ja m672975Tapa jolla kohtelit minua viimeksi miellytti erityisesti
Osaat huomioida kauniisti ja katsot aina tilanteita yhteisen hyvän kannalta. Sitä arvostan erityisesti.862708- 352520
- 662416
Satuit vain olemaan
Ensimmäinen joka avasi minussa sen nähdyksi ja rakastetuksi tulemisen puolen. Pitäisi vain muistaa että et ole ainoa. Se432265- 882042