Z nudów napisałem takie dziwne programy dla zabawy. Pierwszy to rekurencja funkcji main
Kod:
#include <stdio.h>

int main(int argc,char* argv[])
{
    if(argc<2) return 0;
    main(argc-1,argv);
    for(int b=1;b<argc;b+=1) printf("%s\n",argv[b]);
    return 0;
}
użycie:
Kod:
./test mietek edek franek stasiek
mietek
mietek
edek
mietek
edek
franek
mietek
edek
franek
stasiek
Niby proste ale tutaj funkcja main jest wywoływana kilka razy przez siebie.

Drugi program wyświetla szesnastkowo kod funkcji main:
Kod:
#include <stdio.h>
int main()
{
    char* tablica=(char*)&main;
    for(int b=0;b<40;b+=1) printf("%x\n",tablica[b]);
    return 0;
}
No i w każdej linii jest jeden bajt kodu.(poprawność sprawdzana objedump'em) Mógłbym czekać na instrukcje zakończenia ale niekoniecznie moze byc to instrukcja procesora. Więc mógłbym napisać disassembler.
A czy pisanie takich programów ma sens? Kiedyś miałem taki projekt. Nazwałem go Broadcast Listener. Uczyłem się tam programowania gniazd, obsługi wątków, plików, interfejsu użytkownika. Program odbierał pakiety UDP na określonych portach. Czy jest sens pisania nieprzydatnych programów?