<p>Am 26.08.2017 09:50 schrieb "Michael Van Canneyt" <<a href="mailto:michael@freepascal.org">michael@freepascal.org</a>>:<br>
><br>
><br>
><br>
> On Sat, 26 Aug 2017, Sven Barth via fpc-pascal wrote:<br>
><br>
>> Am 26.08.2017 07:25 schrieb <<a href="mailto:noreply@z505.com">noreply@z505.com</a>>:<br>
>>><br>
>>><br>
>>> What about the BOOL issue..<br>
>>><br>
>>> We know that Boolean in fpc/delphi is not compatible with a C bool<br>
>>><br>
>>> But it gets worse than that: even fpc/delphi's bool is not always<br>
>><br>
>> compatible (but is sometimes).<br>
>>><br>
>>><br>
>>> For example:<br>
>>> <a href="http://blog.delphi-jedi.net/2008/09/25/bool-boolean-and-integer/">http://blog.delphi-jedi.net/2008/09/25/bool-boolean-and-integer/</a><br>
>>><br>
>>> When one must use Integers to do boolean related programming tasks, it<br>
>><br>
>> makes me want to quit programming ;)<br>
>>><br>
>>><br>
>><br>
>> In FPC you can use the types Boolean16, Boolean32 and Boolean64 to get a<br>
>> type that behaves like Boolean, but has a different size.<br>
><br>
><br>
> Sorry for being naive. Why not simply use a boolean ?<br>
><br>
> I thought all this BOOL mess was just meant to be able to interface with C<br>
> libs slightly easier.<br>
><br>
> Instead of<br>
><br>
> If (SomeCfunction()<>0) then<br>
>   DoSomethingStupid;<br>
><br>
> it allows you to write - in appropriate cases - the following:<br>
><br>
> if (SomeCfunction()) then<br>
>   DoSomethingStupid;<br>
><br>
> I don't think we should promote BOOL and friends too much. They are a convenience (which IMHO should not have been introduced in the first place).<br>
><br>
> Promoting them to first-class Pascal citizens is IMHO a bad idea.</p>
<p>Did you read the article that had been linked? That's an important point that is raised in there.<br>
These types as well as the Byte-, Word-, Long- and QWordBool types are mainly for interfacing with C-based interfaces, either on Windows or *nix and there they should definitely be used so that a Pascal user of them can simply use True and False and does not need to worry about the details (but of course the correct type needs to be used as the article shows).</p>
<p>Regards,<br>
Sven</p>