Konvence jazyka C

TEACHINGZPC2

Všechny programy které vytváříme v rámci tohoto předmětu musí splňovat konvence popsané na této stránce. V praxi se můžeme setkat s různými kovencemi.

Proměnné


    // Promenne pojmenovavame malymi pismeny a slova oddelujeme _
    int number = 12;
    long large_number = 183646499;
    
    // Pokud je to možné, tak inicializaci a přiřazení hodnoty provádíme v jednom příkazu.
    int result = function();
    
    // ŠPATNĚ!!!
    int result;
    result = function();

Konstanty


    // Komnstanty pojmenovavame velkymi pismeny a slova oddelujeme _
    #define SIZE = 12
    #define NUMBER_OF_DAYS 7

Funkce


    // Funkce pojmenovavame malymi pismeny a slova oddelujeme _
    int count(int array[]);
    int count_zeros(int array[]);
    
    // Závorky
    
    // Preferované
    int count(array[]) {
        // Telo
    }
    
    int count(array[]) 
    {
        // Tělo
    }

Dále u funkcí zavedeme pravidlo, že délka by němela přesáhnout 30 řádků. Pokud nejste schopni výpočet napsat pod tento limit musíte funkci rozdělit do několika menších.

Strukturované datové typy


    // Výčtový typ
    
    typedef enum {
        // Hodnoty výčtového typu pojmenováváme velkými písmeny
        MO, TU, WE, TH, FR, SA, SU
    } Day; // Nazvy zacinaji velkým pismenem stejne jako kazde dalsi slovo v nazvu
    
    typedef enum {
        STUDENT, TEACHER, STUDENT_AND_TEACHER
    } StagRole
    
    // Struktury
    
    // Struktury maji stejne kovence jako enum
    // Nazvy hodnot ulozenych ve strukture podlehaji konvencim promennych
    typedef struct {
        char day;
        char month;
        short year;
    } Date;
    
    // Pokud potrebujeme ve strukture ukazatel na sebe sama tak pouzijeme nazev
    // zacinajici malym pismenem
    
    typedef struct node {
        int value;
        node *next;
    } Node;

Konstrukce if


    // Vzdy pouzivame { } bez ohledu na to kolik if obsahuje prikazu 
    if (condition) {
        printf("Condition is true");
    } else {
        printf("Condition is false");
    }
    
    // Zavorky
    // Preferovane
    if (...) {
    
    } else { 
    
    }
    
    // Dovolene
    if (...)
    {
    
    }
    else 
    {
    
    }
    
    // ŠPATNĚ!!!
    if (...)
        // jeden prikaz
    else {
        // vice prikazu
    }

Cykly


    // Vzdy pouzivame zavorky bez ohledu na pocet prikazu v bloku.
    
    for (int i = 0; i < ARRAY_SIZE; i += 1) {
        
    }

    for (int i = 0; i < ARRAY_SIZE; i += 1) 
    {
        
    }
    
    while (condition) {
        
    }
    
    while (condition) 
    {
        
    }
    
    do {
    
    } while (condition);
    
    do 
    {
    
    } while (condition);

Makra


    // Makra pojmenovavame velkymi pismeny a slova oddelujeme _
    #define SIZE 1
    
    // Pozor na spravne uzavorkovani
    #define MAX(x, y) ((x) > (y) ? (x) : (y))

Ukazatele

Jsou povoleny všechny níže uvedené konvence a to kvůli použivaní Visual Studia některými studenty, kde IDE nepochopitelně zarovnává * k typu.


    // Deklarace ukazatele
    int *ptr = &...
    int* ptr = &...
    
    int mystery(int *array);
    int mystery(int* array);
    
    // U navratoveho typu funkce
    int* mystery(char value);
    int *mystery(char value);