Thread overview
extern(C) and slices
Sep 11, 2017
Nordlöw
Sep 12, 2017
Jacob Carlborg
Sep 12, 2017
Per Nordlöw
September 11, 2017
If I have a function like

`extern(C) void f(void *x, size_t x_sz)`

can I instead declare it as

`extern(C) void f(void[] x)`

?
September 12, 2017
On 2017-09-12 01:03, Nordlöw wrote:
> If I have a function like
> 
> `extern(C) void f(void *x, size_t x_sz)`
> 
> can I instead declare it as
> 
> `extern(C) void f(void[] x)`
> 
> ?

It looks like the length needs to come first [1]. I think it would be technically possible if you flipped the parameters but you would become dependent on the ABI as well. I would recommend a wrapper instead.

[1] https://dlang.org/spec/abi.html#arrays

-- 
/Jacob Carlborg
September 12, 2017
On Tuesday, 12 September 2017 at 06:23:57 UTC, Jacob Carlborg wrote:
> It looks like the length needs to come first [1]. I think it would be technically possible if you flipped the parameters but you would become dependent on the ABI as well. I would recommend a wrapper instead.
>
> [1] https://dlang.org/spec/abi.html#arrays

Thanks.