Есть ли в C хороший способ сначала определить длину, строки в стиле Паскаля как константы, чтобы их можно было поместить в ПЗУ? (Я работаю с небольшой встроенной системой с компилятором ANSI C, отличным от GCC).
C-строка завершается 0
, например. { 'f'
, 'o'
, 'o'
, 0
}.
Строка Паскаля имеет длину в первом байте, например. { 3
, 'f'
, 'o'
, 'o'
}.
Я могу объявить C-строку, которая будет помещена в ROM с помощью:
const char *s = "foo";
Для строки Pascal я мог бы вручную указать длину:
const char s[] = {3, 'f', 'o', 'o'};
Но это неудобно. Есть ли способ лучше? Возможно, в препроцессоре?