Я работаю над небольшим приложением, написанным на C++, и хотел бы использовать его на своей платформе. К сожалению, наша кросс-компиляция toolchain (надежно) обеспечивает компилятор C. Я посмотрел приложение, и он довольно прост и только использует C++-специфические идиомы в нескольких местах, поэтому я подумал, что просто перекодирую его в C-код вручную.Вручную вызовите инициализатор объекта C++ в C
Я столкнулся с одной строкой, и я не уверен, как обращаться. Код использует Termios, чтобы открыть новый порт для разговора с потоком TTY и инициализирует структуру Termios, используя ключевое слово new
.
termios *settings = new termios();
Как я понимаю, new
ключевого слова, помимо выделения соответствующей памяти, вызывает инициализатор объекта. В C после выделения памяти malloc
можно ли вручную вызвать инициализатор? Нужно ли мне?
У меня такое чувство, что я недопонимаю что-то очевидное/фундаментальное или что я смотрю на все это неправильно. Я не очень привык к C++-коду.
Редактировать: Я, кажется, вызвал некоторую путаницу. Строка кода выше создает новую termios-структуру, как это определено в termios.h
, часть стандартных библиотек на большинстве реализаций C.
«В C, после выделения памяти с помощью malloc, можно ли вручную вызвать инициализатор?» Нет, вы не можете. "Нужно ли мне?" Это зависит от объекта. – 101010
Показать определение 'termios'. – Chad
@Chad Вопрос заполнен C: см. Определение в manpage termios –