3 ms·
This is just a choice of having to provide an output buffer to the function instead of returning a new buffer since it's easier to inject custom allocator behav
by jznsis 2y ago
This is just a choice of having to provide an output buffer to the function instead of returning a new buffer since it's easier to inject custom allocator behaviour that way
- anonymousiam 2y agoCan you elaborate please? Your description does not match what I see. My understanding is that this is a way to more strongly type function arguments, as an alternative to va_arg.
- jznsis 2y agoYes, but the final result is out_str, not a forward to console, isn't it? Either way, the format string discussion for the printf familiy of functions is very similar between them
- anonymousiam 2y agoOkay, got it. So you are agreeing with me that the author should have used printf instead of sprintf. Thanks!
- deleted 2y ago[deleted]
- jznsis 2y agoNo
- jwilk 2y agoThere's no return value here: void my_sprintf(char* format, ???) { sprintf(format, ???); }
- hoping1 2y agoAuthor here, thanks for pointing that out! It was a mistake on my part (: I originally wrote this about printf, but decided I should include the section where I implement it, and I decided I didn't want to say anything about side effects, so I changed everything to a version that just returns the new string. In my head this is called "sprintf" (and the notes I based this on, linked in the post, did the same thing) though I can see now how this was confusing to people. Especially since I didn't rewrite it perfectly!