Такой или какой?
Такой. Посмотрите на название проекта. Я согласен с автором проекта, что название адекватно.
такой, вот, минимальный рантайм без стандартных функций. И разницы между ним и libc(стандартной библиотекой c, куда стандартные функции таки входят), вы не улавливаете? Есть стандартные функции или их нет, или они есть, но не только стандартные, разницы нет? И почему одно называть другим не всегда уместно(особенно когда речь про printf) тоже не понимаете?
Но речь про СИ . printf - стандартная сишная функция
Если вы в каком-то случае пользуетесь C, это ещё не значит, что вы можете пользоваться сишным рантаймом.
Чтобы это не означало... но речь про СИ . printf - стандартная сишная функция, которая определена стандартом, и должна быть в стандартной библиотеке, если вы ей где-то не можете пользоваться, то это нестандартно. И ещё, она рассчитана, чтобы принимать строки которые нультерминированные, если вы передаете её какие-то другие строки, то это либо не строки, либо другой язык.
И корректную работу printf , если вы ей передаете что попало никто не гарантирует.
Если передать ограничивающий спецификатор - не начнёт.
начнет.
include <stdio.h>
int main()
{
char char_arr0[100] ; //массив символов
char char_arr[]={'-','%','.','4','s','-','-', '\n' } ; //массив символов c ограничителем строки
memset(&char_arr0[0],'z',100) ; // заполним первый массив символом 'z'
printf(&char_arr[0],"строка") ; // помещает символы строки в массив, не более четырех байт по ограничителю(два символа для utf8), и далее выводит до нуля или исключения
return 0 ;
}
вывод в linux(в windows чуть отличается, но тоже самое)
-ст--
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz�
Это неважно как вы это назовёте. Важно, что встретив в программе char buf[2048] вы не можете сразу сказать, предполагается ли там нуль в конце или нет.
Важно стараться называть вещь своими именами. (мы и так плохо понимаем друг друга) . Тут уже давали цитату из стандарта. Я повторю, но чуть больше:
Цитата:
A string is a contiguous sequence of characters terminated by and including the first null character. The term multibyte string is sometimes used instead to emphasize special processing given to multibyte characters contained in the string or to avoid confusion with a wide string. A pointer to a string is a pointer to its initial (lowest addressed) character. The length of a string is the number of bytes preceding the null character and the value of a string is the sequence of the values of the contained characters, in order.
у вас char buf[2048] - массив, а не строка . важно понимать это и не сувать его куда попало и как попало.
А надо пофильтровать шум с двух входов, удлинить входные импульсы, переключаться между входами, ещё и время считать. Чтобы компилятор С уложил всё это в 256 команд?! Да бросьте.
У вас шум фильтруется и импульсы удлиняются на СИ или на АСМе ?
Учить меня обработке строк и замене '$'->'\0' не нужно.
А зачем такие вопросы задаете?
Для чего это спрашивали:
А если в массиве могут быть строки не только с нулём на конце (а и например с символом '$' как было кое-где в DOS)? Делать по макросу на каждый вариант окончания или назвать макрос сразу SYMBOL_SUFFIXED (сразу учесть в названии и не однобайтовые символы)? А если может заканчиваться не байтом, а к примеру двумя нулевыми байтами (как бывает для списка строк ровно из одной строки
, если вдруг её надо передать в функцию обрабатывающую лишь списки строк, типа переменных окружения в DOS при запуске программы)?
???