calling C variadic arguments with no 'argc' and only variadic arguments

Laeeth Isharc via Digitalmars-d digitalmars-d at puremagic.com
Tue Mar 17 21:49:35 PDT 2015


On Wednesday, 18 March 2015 at 03:14:30 UTC, Daniel Murphy wrote:
> "Laeeth Isharc"  wrote in message 
> news:jmlgralvzaqperfkntqw at forum.dlang.org...
>
>> DMD gave me an error message for the following declarations:
>>
>> double mgl_rnd (...);
>> double mgl_rnd_ (...);
>>
>> It says I need at least one fixed argument first.  But the C 
>> headers are as they are.
>>
>> I could work around this by writing a C stub
>>
>> double mgl_rnd_(int dummy, ...)
>>
>> but is there any way to call these functions without this 
>> workaround?
>
> You should just declare them with the actual argument types.  
> From a quick look at the documentation it seems like the 
> correct signature would be
> double mgl_rnd();
>
> i.e. these functions aren't actually variadic they just haven't 
> specified the signature.  Functions that take variadic 
> arguments will pretty much always have at least one named 
> argument.

Thanks.  I should have double checked but trusted dstep which
seems to have gotten confused by these ones.  Its a great time
saver generally though.


Laeeth


More information about the Digitalmars-d mailing list