Προς το περιεχόμενο

Ch Iossif's "Hello World"


chiossif

Προτεινόμενες αναρτήσεις

Δημοσ.

Αν δεν κάνω λάθος, το όνομα αρχείου είτε είναι το μέγιστο είτε το ελάχιστο, πιάνει τον ίδιο χώρο και όσο είναι το μέγιστο μήκος (ναι, και στο Linux έχει μέγιστο).

 

Αν το περάσεις από τον preprocessor θα γίνει ότι και τα άλλα - αλλά αν το πάμε έτσι, θα κέρδιζε το ISO C που αναπτυσσόταν στο σύστημα με τα μικρότερα header files ;)

  • Απαντ. 42
  • Δημ.
  • Τελ. απάντηση
Δημοσ.

Άλλο ένα προς δοκιμή:

 

And a 1986 entry from Bruce Holloway:

 

#include <stdio.h>

#define e 3

#define g (e/e)

#define h ((g+e)/2)

#define f (e-g-h)

#define j (e*e-g)

#define k (j-h)

#define l(x) tab2[x]/h

#define m(n,a) ((n&(a))==(a))

 

long tab1[]={ 989L,5L,26L,0L,88319L,123L,0L,9367L };

int tab2[]={ 4,6,10,14,22,26,34,38,46,58,62,74,82,86 };

 

main(m1,s) char *s; {

int a,b,c,d,o[k],n=(int)s;

if(m1==1){ char b[2*j+f-g]; main(l(h+e)+h+e,B); printf(B); }

else switch(m1-=h){

case f:

a=(b=(c=(d=g)<<g)<'<g)<<g;

return(m(n,a|c)|m(n,B)|m(n,a|d)|m(n,c|d));

case h:

for(a=f;a=e)for(b=g<<g;b<n;++b)o=o[b-h]+o[b-g]+c;

return(o[b-g]%n+k-h);

default:

if(m1-=e) main(m1-g+e+h,s+g); else *(s+g)=f;

for(*s=a=f;a<e;) *s=(*s<<e)|main(h+a++,(char *)m1);

}

}

 

[ http://www2.latech.edu/~acm/helloworld/c.html ]

Δημοσ.

Μην απογοητευθείτε με την πρώτη, υπάρχουν κάποια ορθογραφικά λάθη. Προσπαθείστε...(όστις θέλει φυσικά)

Δημοσ.

Τα περισσότερα βέβαια από υποστηρίζουν ότι τα πάντα είναι ASCII... Πόσο φτωχοί είναι :D

Δημοσ.

Και για να γελάσουμε ( μόνο γι'αυτό; ):

 

http://users.tkk.fi/~mkousa/ohj_evoluutio.txt

 

http://www.infiltec.com/j-h-wrld.htm

 

Κι φυσικά όποιος φίλος βρει (ή ακόμα καλύτερα ΓΡΑΨΕΙ) ανάλογες προτάσεις hello world, όμορφες ή άσχημες, για γέλια ή για κλάματα ας τις στείλει.

 

Καλό γράψιμο ή ψάξιμο...

Δημοσ.

Κι εγώ την ίδια απορία είχα Sta.

 

Πάντως εγώ που το δοκίμασα με gcc version 3.3.5 (Debian 1:3.3.5-13) δέν κατάφερα να το κάνω να δουλέψει.

Ο preprocesor μου αντικαθιστά το __FILE__ με το όνομα του αρχείου αλλά μέσα σε "αυτάκια" (") οπότε μετά δεν κάνει compile!

Αφήστε που δεν μου δουλεύει η δεύτερη macro (-Dc=//) (Τα c τα αφήνει όπως είναι.)

Ε, και προφανώς το -istdio.h έπρεπε να το κάνω -include stdio.h

 

Αν κανείς έχει όρεξη να το κάνει και του δουλέψει πάντως ας μας πει...

 

edit: Πάντως αν κάνετε ένα search εδώ για hello world θα βρείτε μερικά (μάλλον ήδη γνωστά) προγράμματα...

Δημοσ.

Καταπληκτικό!!!

:D

 

Και για να γελάσουμε ( μόνο γι'αυτό; ):

 

http://users.tkk.fi/~mkousa/ohj_evoluutio.txt

 

http://www.infiltec.com/j-h-wrld.htm

 

Κι φυσικά όποιος φίλος βρει (ή ακόμα καλύτερα ΓΡΑΨΕΙ) ανάλογες προτάσεις hello world' date=' όμορφες ή άσχημες, για γέλια ή για κλάματα ας τις στείλει.

 

Καλό γράψιμο ή ψάξιμο...[/quote']

Δημοσ.
Αν δεν κάνω λάθος' date=' το όνομα αρχείου είτε είναι το μέγιστο είτε το ελάχιστο, πιάνει τον ίδιο χώρο και όσο είναι το μέγιστο μήκος (ναι, και στο Linux έχει μέγιστο).

[/quote']

 

Δεν το θυμάμαι, αλλά νομίζω ότι κοστίζει σε αποθήκευση ένα μεγάλο όνομα αρχείου. Είναι και λογικοφανές εξάλλου.

 

Αν το περάσεις από τον preprocessor θα γίνει ότι και τα άλλα - αλλά αν το πάμε έτσι, θα κέρδιζε το ISO C που αναπτυσσόταν στο σύστημα με τα μικρότερα header files ;)

 

Αυτό είναι θέμα προς συζήτηση: πώς δηλαδή η ποσότητα του source code προωθεί την αποδοτικότητα.

Δημοσ.
Δεν το θυμάμαι, αλλά νομίζω ότι κοστίζει σε αποθήκευση ένα μεγάλο όνομα αρχείου. Είναι και λογικοφανές εξάλλου.

 

Από όσο είδα το ext2 έχει variable filename size. Το FAT δεν φαίνεται να έχει :confused: .

 

Λογικοφανές είναι να είναι μεταβλητό, αλλά όχι αποδοτικό.

Δημοσ.
Από όσο είδα το ext2 έχει variable filename size. Το FAT δεν φαίνεται να έχει :confused: .

 

Λογικοφανές είναι να είναι μεταβλητό' date=' αλλά όχι αποδοτικό.[/quote']

 

Δεν είναι δαπανηρό σε χώρο να κάνεις δέσμευση χώρου όσο το μέγιστο μέγεθος στο όνομα του αρχείου; Το όνομα δεν αποθηκεύεται στο FAT αλλά στα directory records.

Δημοσ.

Είναι, αλλά πολλά πράματα δεν γίνονται με γνώμονα το μέγεθος, αλλά την ταχύτητα (βλέπε padding bits για alignment σε structs).

Δημοσ.
Είναι, αλλά πολλά πράματα δεν γίνονται με γνώμονα το μέγεθος, αλλά την ταχύτητα (βλέπε padding bits για alignment σε structs).

 

Ναι έτσι είναι, απλώς στην περίπτωση που συζητάμε δε συμβαίνει αυτό.

  • 2 εβδομάδες αργότερα...
Δημοσ.

Επιστρέφω με αυτό:

 

#include <stdio.h>

 

char *s="Hello world!\n";

 

main(){

if (*s){

putchar(*s++);

main();

}

}

 

για να γίνουν και πιο κατανοητά τα προηγούμενα...

...ή και για να δώσω τροφή σε νέες "δοκιμές".

Δημοσ.

Ας το κάνουμε και σωστό ISO C:

>#include <stdio.h>

const char *s="Hello world!\n";

int main(void) {
 if (*s)
 {
   putchar(*s++);
   main();
 }

 return 0;
}

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...