2 ms·
I'd agree if GP hadn't also used C++-specific optional parameters. Given the minefield that is vendor specific C++ish extensions to C, it seems worth a mention
by MaulingMonkey 7y ago
I'd agree if GP hadn't also used C++-specific optional parameters. Given the minefield that is vendor specific C++ish extensions to C, it seems worth a mention, even if I'm unaware of a compiler vendor that allows default parameters in your C code.
- cozzyd 7y agoIt was just an illustration in C++ (the C version would just document it, obviously). There is no way to do this in a vendor specific way without some sort of name mangling that will hopelessly break the ABI...
- a1369209993 7y agoYes there is: void foo(void* p=0); // has exactly the same ABI as void bar(void* p); bar(); // error: missing parameter foo(); // shorthand for foo(0); // void(*)(void*) is a different type than void(*)(void*=0) // but they can be implicitly converted the same as // eg void* and char*
- cozzyd 7y agohmm I guess so!