Online C Compiler
Открыть в компиляторе

Учебная версия на русском. Код и его вывод сохранены в исходном виде.

Особенности языка C

Узнайте, как функции, типы, память и компиляция используются в системных программах на C.

Открыть в компиляторе

Особенности языка C
Узнайте, как функции, типы, память и компиляция используются в системных программах на C.

C — процедурный язык: программа состоит из функций, условий, циклов и структур данных. Базовые типы представляют символы, целые числа и числа с плавающей точкой. Массив объединяет элементы одного типа, а структура — связанные поля разных типов.

Компилятор переводит исходный текст для конкретной платформы. Небольшие накладные расходы не означают постоянного времени выполнения: влияют операционная система, кэш и выбранные операции. Производительность нужно измерять на характерной нагрузке.

Указатели дают доступ к адресам, но требуют проверки границ и времени жизни объектов. Память, полученную через malloc, необходимо освободить через free. В языке нет встроенного автоматического сборщика мусора.

Соблюдение стандарта упрощает переносимость, но размеры типов и системные интерфейсы могут различаться. Используйте sizeof и подходящие заголовки; не считайте, что любой указатель занимает восемь байт.

Код C

#include <stdio.h>

int main(void) {
    printf("==============================\n");
    printf("C Language Hardware Inspection\n");
    printf("==============================\n");
    printf("Standard C Version : %ld\n", __STDC_VERSION__);
    printf("Pointer Width      : %zu bytes\n", sizeof(void*));
    printf("Integer Width      : %zu bytes\n", sizeof(int));
    printf("Double Width       : %zu bytes\n", sizeof(double));
    return 0;
}
Открыть в компиляторе

Ожидаемый вывод

==============================
C Language Hardware Inspection
==============================
Standard C Version : 201710
Pointer Width      : 8 bytes
Integer Width      : 4 bytes
Double Width       : 8 bytes

Частые вопросы

Почему код и вывод остаются на английском?

Ключевые слова, идентификаторы и строки, проверяемые тестами, сохранены, чтобы не менять программу. Объяснения и элементы управления переведены.