Standart C23

cppreference

#include <stdio.h>
#include <stdbool.h> // Хоча в C23 bool вже є ключовим словом

int main() {
    // 1. Виведення типу (auto)
    auto age = 25;           // Компілятор сам зрозуміє, що це int
    auto pi = 3.14159;       // А це double

    // 2. Нові ключові слова для логіки
    bool is_learning = true; 

    // 3. Безпечний nullptr замість макросу NULL
    int* ptr = nullptr;

    // 4. Двійкові літерали та розділювачі розрядів
    int binary_data = 0b1010'0101; 
    long large_num = 1'000'000;

    // 5. Атрибути (наприклад, щоб компілятор не сварився на невикористану змінну)
    [[maybe_unused]] auto status_code = 200;

    if (is_learning) {
        printf("Вік: %d, Число: %ld\n", age, large_num);
        printf("Бінарні дані: %d\n", binary_data);
    }

    if (ptr == nullptr) {
        printf("Вказівник порожній, як і має бути в C23!\n");
    }

    return 0;
}
#include <stdio.h>

int main() {
    // Вставляємо весь файл картинки як масив байтів
    const unsigned char icon_data[] = {
        #embed "icon.png"
    };

    // Можна додати обмеження, префікси або обробку порожнього файлу
    const unsigned char partial_data[] = {
        #embed "large_file.bin" limit(128) prefix(0xFF, 0xFE,) suffix(, 0x00) if_empty(0)
    };

    printf("Розмір іконки: %zu байт\n", sizeof(icon_data));
    return 0;
}