Entering a constant can be important in places where automatic conversions are not applied, in particular, functions with a variable argument list
printf("my size is %zu\n", MIN_BUF_SIZE);
can easily work when the widths of int and size_t different and you wouldn’t do the cast.
But your macro leaves room for improvement. I would do it like
#define MIN_BUF_SIZE ((size_t)+256U)
(see small + sign, is there?)
When defining such a macro, you can still use it in preprocessor expressions (with #if ). This is due to the fact that in the preprocessor (size_t) is evaluated as 0 , and therefore the result is also unsigned 256 .
source share