Convenții de cod - C: Diferență între versiuni

De la WikiLabs
(Numele de structuri)
(Numele de structuri)
Linia 68: Linia 68:
 
};
 
};
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
= Spații =
 +
 +
<ol>
 +
<li>Se pun spații înainte și după operatorii binari (=, ==, !=, <, etc.):
 +
<syntaxhighlight lang="C">
 +
int result = operand1 + operand2 / operand3;
 +
</syntaxhighlight>
 +
</li>
 +
<li>'''NU''' se pun spații înainte operatorii unari (!, -, ++, --, etc.) și operand:
 +
<syntaxhighlight lang="C">
 +
int result = operand1++ + -operand2;
 +
int canUse = !isEmpty && !isFull;
 +
</syntaxhighlight>
 +
</li>
 +
 +
</ol>

Versiunea de la data 6 decembrie 2015 12:36

Acest document descrie regulile ce trebuie respectate la scrierea de programe în C, atât pentru materia Programarea Calculatoarelor cât și pentru Structuri de Date și Algoritmi. Nerespectarea acestor reguli va duce la depunctarea implementării respective.

Identificatori

Numele de variabile urmează convenția CamelCase, cu excepția numelor de macrouri și constante statice care vor urma convenția snake_case și care vor fi scrise exclusiv cu litere mari.


În același timp toți identificatorii trebuie sa aibă nume sugestive, care să descrie fără ambiguitate scopul sau funcționalitatea variabilei sau funcției.

Nume de variabile

Numele de variabile locare sau argumente

Numele de variabile locale sau argumente de funcții vor incepe cu literă mică și vor urma convenția CamelCase:

void printMyName(char name[]) {
    int variableName;
    float floatValue;
    //...
}

Numele de variabile globale

Numele de variabile globale trebuie să înceapă cu litera 'g' și următoarea literă mare și vor urma convenția CamelCase. Litera 'g' specifică faptul că variabila este globală și nu este definită în contextul curent:

long long gCurrentTime;

void updateCurrentTime(long interval) {
    gCurrentTime += interval;
}

Numele de macrouri și constante statice

Numele de macrouri și constante statice vor urma convenția snake_case și vor fi scrise exclusiv cu litere mari:

#define MAX_STRING_LENGTH 100
#define MAX(x, y) ((x) >= (y) ? (x) : (y))

static const MAX_CLIENTS = 1000;

Numele de funcții

Numele de funcții vor urma convenția CamelCase și vor începe cu literă mică:

int addValues(int, int);
float convertValue(float);
void printData(struct Person person);

Numele de structuri

Numele de structuri vor urma convenția CamelCase și vor începe cu literă mare:

struct Person {
    char name[50];
    unsigned short age;
    char cnp[14];
};

struct DataStore {
    struct Person people[];
    long long rsaKey;
};

Spații

  1. Se pun spații înainte și după operatorii binari (=, ==, !=, <, etc.):
    int result = operand1 + operand2 / operand3;
    
  2. NU se pun spații înainte operatorii unari (!, -, ++, --, etc.) și operand:
    int result = operand1++ + -operand2;
    int canUse = !isEmpty && !isFull;