Зараз я працюю з вбудованими системами і з'ясовую способи реалізації рядків на мікропроцесорі без операційної системи. Поки що я роблю, це просто використовувати ідею мати покажчики символів, що припиняються NULL, і трактувати їх як рядки, де NULL означає кінець. Я знаю, що це досить часто, але чи завжди ви можете розраховувати на те, що це так?
Причина, про яку я запитую, полягає в тому, що я думав про те, можливо, в якийсь момент використовувати операційну систему в режимі реального часу, і я хотів би повторно використовувати якнайбільше мого поточного коду. Тож я можу очікувати, що для різних варіантів, які існують там, багато що струни будуть працювати однаково?
Дозвольте бути більш конкретним, але для моєї справи. Я реалізую систему, яка приймає та обробляє команди через послідовний порт. Чи можу я залишити свій код обробки команд однаковим, а потім очікувати, що рядкові об'єкти, створені на RTOS (які містять команди), будуть припинені NULL? Або це було б інакше, залежно від ОС?
Оновлення
Після того, як мені порадили поглянути на це питання, я визначив, що він не відповідає точно тому, що я прошу. Саме запитання запитує, чи слід завжди пропускати довжину рядка, яка зовсім інша, ніж те, що я прошу, і хоча деякі відповіді мали корисну інформацію в них, вони не є саме тим, що я шукаю. Там відповіді, здавалося, дають причини, чому або чому не припиняти рядок з нульовим символом. Різниця в тому, що я прошу, полягає в тому, чи можу я більш-менш очікувати, що вроджені рядки різних платформ припиняють свої власні рядки з нуля, без необхідності виходити і спробувати кожну платформу там, якщо це має сенс.