Ricerca tra la vecchia roba

Piccolo vademecum per il programmatore

Posted: Agosto 22nd, 2008 | Author: | Filed under: Guide, Programmazione | 1 Comment »

Regole da seguire per scrivere codice in C

  1. Appena apri un file (sopratutto non tuo) imposta shiftwidth, tabstop ed eventualmente expandtab in maniera adeguata al tuo stile. Eventualmente set list ti può far capire che impostazioni sono state usate.
  2. Il preprocessore ti ha fatto conoscere # e ## che sono tue amiche e ci sanno fare.
  3. Ricordati che con -llibrary dici al linker che al programma serve la libreria library e con -L eventualmente dove trovarla. Un controllo con ldd non fa mai male.
  4. Commenta il codice
  5. Commenta il codice
  6. Se hai creato una funzione con più di due blocchi distinti mi sa che ti tocca riscriverla.
  7. Ricordati di nascondere con static una funzione al mondo esterno.
  8. Non sforare le 80 colonne.
  9. Sempre sia lodato ulimit -c unlimited.
  10. Quando migliori il codice assicurati di non peggiorarlo.
  11. I Makefile sono una figata
  12. Se il tuo programma prevede di scrivere su file usa full(4) per provare cosa succede nel caso si esaurisca lo spazio su disco (tu ovviamente credevi di aver pensato a tutto!!!).
  13. Le mailing list sono tue amiche (magari leggile tramite thunderbird che ha un eccellente sezione sulla iscrizione ai news groups di gmane.org).
  14. Se desideri open(2) ma vim ti apre open(1) ricordati di premere ‘2K‘.
  15. If a macro contains more than one statement, use a do/while structure to enclose the
    macro. (Don’t forget to leave out the semicolon of the statement).
  16. gcc -dM -E - < /dev/null può dirti quali sono le macro predefinite nel tuo compilatore preferito.
  17. Se per caso devi utilizzare le feature_test_macros(7), ricordati di inserire i #define prima di qualunque altro #include.
  18. Puoi impostare un campo di una struct tramite per esempio
    variabile_struct = (struct punto){ .x = 10.0 , .y = 14.89 }; secondo me è più leggibile e anche se cambi la definizione della struct non hai bisogno di cambiare l’ordine delle inizializzazioni (e il compilatore non ti avverte!!!).
  19. Usa -Wpadded, -Wpacked e nel caso utilizza __attribute__ ((__packed__)) per controllare l’alignment ed il padding di una struct. Utile se usi una fread su un file binario e gli elementi della struct non sono caricati correttamente.
  20. Usa un regola esplicita nel makefile per gli header: file.o: header.h. Altrimenti nella ricompilazione può usare una struct che in realtà è stata ridefinita e il segfault diventa un mistero.
  21. Quando definisci un file oggetto come libreria, con il nome per esempio "cazzo-util.c", includi in esso l’header "cazzo-util.h" così da avere sotto controllo eventuali definizioni diverse di funzione.
  22. extern va in .h
  23. Se devi leggere un double con scanf, devi usare il modificatore "long", cioè %lf,  porcatroia…
  24. Magari inizi a scrivere un po’ di funzioni static in un unico file e poi in un secondo tempo vuoi spostare per argomento in altri file queste, puoi usare sed(1) usando come pattern ‘/^static.*(/,/^}/p’ per studiartele un attimo.
  25. Usa valgrind per controllare memory leak: ‘valgrind –tool=memcheck <programma e argomenti>‘.
Compiling.
Linkografia

One Comment on “Piccolo vademecum per il programmatore”

  1. 1 qwerty said at 8:41 pm on Agosto 22nd, 2008:

    hey get back to work! – masturbating! – oh. cum on