Язык Си

Язык Си

Язык программирования Си — универсальный язык программирования, который завоевал особую популярность у программистов, благодаря сочетанию возможностей языков программирования высокого и низкого уровней. Большинство программистов предпочитают использовать язык Си для серьезных разработок потому, что их привлекают такие особенности языка, как свобода выражения мыслей, мобильность и чрезвычайная доступность.

Язык Си дает возможность программисту осуществлять непосредственный доступ к ячейкам памяти и регистрам компьютера, требуя при этом знания особенностей функционирования ЭВМ. В этом Си схож с языком низкого уровня — ассемблером, хотя на самом деле он представляет собой гораздо более мощное средство решения трудных задач и создания сложных программных систем.

Язык Си был разработан американцем Деннисом Ритчи в исследовательском центре Computer Science Research Center of Bell Laboratories корпорации AT&T в 1972 г. Первоначальная реализация Си была выполнена на ЭВМ PDP-11 фирмы DEC для создания операционной системы UNIX. Позже он был перенесен в среду многих операционных систем и существует независимо от любой из них. Программы, написанные на языке Си, как правило, можно перенести в любую другую операционную систему или на другой компьютер либо с минимальными изменениями, либо вовсе без них.

Язык Си также используется при составлении программ для микроконтроллеров.

Язык Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования как C++, C#, Java, PHP и др.

Язык программирования C имеет несколько стандартных версий, наиболее часто используемые из них — C89/C90, C99, C11 и C18.

C89/C90 (ANSI C или ISO C) был первой стандартизированной версией языка, выпущенной в 1989 и 1990 годах соответственно. В этом стандарте представлены многие функции, которые до сих пор используются в современном программировании на языке C, включая типы данных, структуры управления и стандартные библиотеки.

C99 (ISO/IEC 9899:1999) представил несколько новых функций, включая массивы переменной длины, гибкие элементы массива, комплексные числа, встроенные функции и назначенные инициализаторы. Этот стандарт также включает несколько новых библиотечных функций и обновления существующих.

C11 (ISO/IEC 9899:2011) представил несколько новых функций, включая _Generic, static_assert и квалификатор атомарного типа. Этот стандарт также включает несколько обновлений библиотек, в том числе новые функции для математических вычислений, потоков и манипуляций с памятью.

C17/C18 (ISO/IEC 9899:2018) — это последний стандарт, включающий обновления и пояснения к спецификации языка и библиотекам.

9 комментариев к “Язык Си”

  1. Доброго времени суток, есть ли у языка С свой официальный сайт? как например у Dart или Python. Развивается ли этот яп есть ли для него фреймворки, куча вопросов а гуглеж ответов не прибавляет…

    1. Елена Вставская

      Сейчас развивается скорее язык C++, который перенял весь синтаксис Си и дополнил его своим.

  2. Леонид

    Здравствуйте.
    не понимаю что не так не накапливается строка в обратном порядке

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    char* reverse(const char* text)
    {char* NewTxt ="kjkjhk";
    char sumbol;
    int poz=strlen(text)-1;
    while(poz>=0)
    {//
        sumbol=text[poz];
        NewTxt+=sumbol;
    printf(" Char —  %s,%d\n",sumbol,poz);
    poz—;
    }
    return NewTxt;
    }

    int main()
    {
    printf(" dfskhlkjhdfg  \n");
    char* reversed;
    reversed = reverse("Hello world!");
    printf("%s\n", reversed);
    // "!DLROW OLLEH"
    }

    1. Елена Вставская

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      char* reverse(const char* text)
      {
        char* NewTxt = (char*)malloc(strlen(text) + 1);
        char sumbol;
        int poz = strlen(text) — 1;
        int j = 0;
        while (poz >= 0)
        {//
          sumbol = text[poz];
          NewTxt[j++]= sumbol;
          printf(" Char — %c,%d\n", sumbol, poz);
          poz—;
        }
        NewTxt[j++] = '\0';
        return NewTxt;
      }
  3. Динис

    Здрасте скажите а программисту обязательно нужно знать как происходит компиляция?

      1. Дмитрий

        Елена доброго дня!
        Подскажите как написать на языке СИ программу для ШИМ? (плавное включение светодиода например)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх