The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Дискуссия об использовании языка C++ для разработки ядра Lin..."
Отправлено Аноним, 15-Янв-24 14:35 
> Принципиальная разница инициализации структур с Си,в том что это и занимает 0 тактов,

На самом деле очень зависит от. И может являть собой и memset или memcpy в определенных случаях. Одна из ключевых причин по которым gcc требует от freestanding memset и memcpy - операции с структурами. Если не предоставить вон то, билд фирмвари может отвалиться с ошибкой линковки в взявшемся "изниоткуда" вызове memcpy/memset.

> в отличии от конструкторов,

На сях можно вполне сравнимо:


typedef struct my_data_t {
    uint32_t a;
    uint16_t b;
    uint8_t arr[10];
} my_data_t;

my_data_t defaults(void) {
    my_data_t ret;
    ret.a = 10;
    ret.b = 20;
    ret.arr[5] = 42;
    return ret;
}
...
my_data_t someting = defaults(); // constructor-like entity.


Нужно ли так делать - "on case by case basis" конечно же. Причины те же что и у плюсеров, т.е. вкатить в "начальные значения" что-то "активно вычисляемое" что не удалось оформить компилтайм выражениями. Скажем нечто вычисляемое в зависимости от runtime переменных.

> и более того не требует временных переменных, что облегчает автоматизацию генерации кода.

Опять же - это все сильно зависит от того что и как сделает программер и не является универсальным неотъемлимым и безусловным свойством "си вообще".

Сишка забевен тем что в силу простоты, он - мультипарадигменный. Куда хотите, туда и вертите.

> И в идеале было бы хорошо, если бы компилятор C++ был чуть более совместимым с С.

Ну вот кстати да. Чтобы C был именно subset БЕЗ оговорок.

> И напрашивается добавить аналогичное extern "CPP", как стандартизированный вариант для
> API и библиотек.

В конечном итоге хруст, а вроде еще D, и кто там еще умеющие вызывать плюсоту что-то такое и делают :))

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру