---
# System prepended metadata

title: 01 лекция

---

# 01 лекция

Крупные компиляторы C/C++ (3,5 независимых реализаций):
1) Clang(LLVM)
2) GCC (Gnu Compiler Coliction)
3) Microsoft (Visual Studio)
4) (3.5) Intel (парсер - clang) (исходно (генерация кода) - своя реализация)


Про чистый си можно порекомендовать книжку Керниган Ричи - язык программирования СИ, от создателя языка, есть переводы на русский, но есть и плохие переводы.

функция - `тип-возвр-значения   имя   (аргументы)`

```c=
#include <stdio.h> 
// Копирует сюда заголовочный файл стандартной библиотеки ввода-вывода

void f(void);    //обьявления функций
int g(void);
n(void);

int main(void)    // Пустые строки на C++ эквивал. void - ничего не принимает
                  // На си НЕ эквивалент
{
    f();    // вызов функции f
    g();
    int a = n();    // a == 1
    return 0;    // Стандарт разрешает не писать, только в main
}


// Реализация функций
void f(void) // ничего не возвращает, ничего не принимает
    
    // тело функции
{
    printf("Hello!\n");
    return; //выход из функций и ничего не вернем
}

int g(void) // возвращает int, ничего не принимает
{
    printf("Hello!\n");
    return 0;    // вернуть 0
}

n(void) // возвращает int, ничего не принимает
{
    printf("Hello!\n");
    return 1;     // вернуть 1
}
```

> f(void) и в С, и в С++ означает, что функция не имеет параметров, а f() в С++ означает то же самое, а в некоторых стандартах С — что функция имеет неизвестное число параметров

---