On 08/04/2024 02:50, Lawrence D'Oliveiro wrote:
On Sun, 07 Apr 24 15:18:47 +0000, pehache wrote:
void* p2 = mmap( NULL
, n
, PROT_READ | PROT_WRITE
, MAP_SHARED | MAP_NORESERVE
, fd
, 0 );
Not easy to remember what the arguments mean. Try this:
void * p2 = mmap
(
/*addr =*/ NULL,
/*length =*/ n,
/*prot =*/ PROT_READ | PROT_WRITE,
/*flags =*/ MAP_SHARED | MAP_NORESERVE,
/*fd =*/ fd,
/*offset =*/ 0
);
That's great but, how did you manage to figure out the meanings and
order of the parameters in order to be able to write those comments?
If you have 1000s of calls to such functions, will you have those
comments plastered everwhere?
In a language with proper named/keyword arguments, you don't need to
remember the order. You don't need to supply all the arguments (eg. addr
and offset in your example can have defaults, possibly those sets of
flags too).
If you get an argument name wrong, it will tell you. I suspect that if
you wrote this by mistake:
/*prot =*/ MAP_SHARED | MAP_NORESERVE,
/*flags =*/ PROT_READ | PROT_WRITE,
it would not be detected.
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)