Codul vostru trebuie nu numai să “meargă”, ci și să fie ușor de citit/parcurs și fără potențiale erori (neverificate de sistemul de evaluare automată). Aveți mai jos câteva indicații pentru teme, împreună cu depunctările aferente pentru nerespectarea lor.
#include “file.c”); se includ doar fișiere header (exemplu: #include “file.h”);#ifdef linux …) acolo unde ar fi fost mai modular să se folosească fișiere separate și includere condiționată în fișiere header;-Wall pe Linux și flag-ul /W3, cel puțin, pe Windows;/D_CRT_SECURE_NO_DEPRECATE pentru a evita unele warninguri pe Windows.do_stuff, my_var) ;exec);// in loc de /* */)Explicație pentru structura creată (sau soluția de ansamblu aleasă):
Obligatoriu:
Opțional:
Link către repo-ul de git folosit pentru localizarea surselor
char cmd[256]/* Undeva într-un fișier .h */ #define MAX_CMD_BUF_SIZE 256 (...) /* Undeva în sursele .c unde avem nevoie de buffer */ char cmd[MAX_CMD_BUF_SIZE];
malloc/calloc) neeliberată folosind free - se poate verifica utilizând valgrindopen care nu mai sunt închise folosind close - se poate folosi opțiunea –track-fds a valgrindfork după care nu se face wait/waitpid - rezultă în apariția unor procese zombielist.hlist.chashtable.hhashtable.cutil.h și util.clist.c) se declară folosind calificatorul static.
.c chiar dacă merge. Face imposibil de urmărit codul și pentru voi dar și pentru
asistenți sau pentru cei care peste 5 ani vor citi codul vostru. Țineți minte următorul motto:
Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live.