[R-pkg-devel] AlgDesign C Issue

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Mon Mar 31 18:38:01 CEST 2025


On 2025-03-31 12:00 p.m., Jerome Braun wrote:
> Hi Duncan!
> 
>  >  Since the compiler will supply stdbool.h, it's safer to use that 
> than to try to emulate it.
> 
> Understood. It seems like the definitions are exactly the same between 
> the two.
> 
> Currently there is no use of "bool" in any of the code (after having 
> changed bool to int everywhere in the code).
> 
> So I think I can replace the two lines in the original code with a call 
> to include the <stdbool.h> header --- does that seem reasonable?   Can I 
> use an include statement there in place of those two lines?

I think replacing those two defines with

#include <stdbool.h>

should be safe.  There's not much a huge difference between bool and 
int, but they aren't the same, so you might still run into some issues. 
For example, in a modern C compiler a bool value can never be 
NA_LOGICAL, but an int value could be.  And if you do arithmetic on bool 
values, you might be surprised by the answer.  For example

   bool x = true + true;

results in x storing true, which is equivalent to 1 when used as an integer.

Duncan Murdoch


> 
> Thank you!
> -- 
> Jerome
> 
> On Mon, Mar 31, 2025 at 11:28 AM Duncan Murdoch 
> <murdoch.duncan using gmail.com <mailto:murdoch.duncan using gmail.com>> wrote:
> 
>     On 2025-03-31 9:28 a.m., Jerome Braun wrote:
>      > Hi Michael!
>      >
>      > I'd like to make the smallest change possible to Bob Wheeler's
>     original
>      > code so I'm not sure if using <stdbool.h> is the best route forward.
>      >
>      > I do see that the definitions are the same there.  Is there a
>     low-cost way
>      > to use that header file or just those definitions?
> 
>     The problem is that the definitions may vary from compiler to compiler,
>     and the error message you're getting only shows up some of them.  Since
>     the compiler will supply stdbool.h, it's safer to use that than to try
>     to emulate it.
> 
>     Duncan Murdoch
>



More information about the R-package-devel mailing list