On Monday, 20 April 2026 at 16:04:32 UTC, DLearner wrote:
Consider:
[...]
To me, there is no 'void' as the void* ptr has been expressly
cast to a proper pointer type.
The same situation seems to occur with:
```
#include <stdio.h>
void ccallee3(void)
{
printf("ccallee3: Entered (written in C).");
printf("\n");
printf("ccallee3: Exiting...");
printf("\n");
return;
}
```
called by
```
// Calling C subfn via FP
// dmd -betterC cmst3.c ccallee3.c
#include <stdio.h>
extern void ccallee3(void);
void main(void)
{
typedef void (*ccallee3typPtr)(void);
ccallee3typPtr wkPtr;
printf("main: Entered (written in C).");
printf("\n");
printf("main: About to call ccallee3 via FP...");
printf("\n");
wkPtr = &ccallee3;
(*(wkPtr))();
// *(wkPtr)();
printf("main: Returned from ccallee3.");
printf("\n");
printf("main: Exiting...\n");
return;
}
```
Which is slightly simpler.