<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>Henning, agreed. I said named parameters help, understood that they are up to the caller to use though.<BR>
Agreed about avoiding negative options, better to have an option that is positive, and leave the users as true and false, or..er..oops, that's what we are also saying not to use. I'm definitely a proponent of this second one. I actually haven't heard/used it for locals, but more for, uh, parameters. (I see I'm being hypocritical again -- don't use booleans...but if you do, use positive ones..), makes sense for locals too. On the other hand, I also like to default things to false/zero, globals, and locals, for easier/more efficient initialization, lately in C I write:<BR>
 <BR>
void F()<BR>
{<BR>   type1 local1 = { 0 }<BR>
   type2 local2 = { 0 }<BR>
   ..<BR>
}<BR>
 <BR>
for all my small locals. A good compiler will optimize away at least some of them (as long as they aren't "out parameters") and I've been too burned by uninitialized locals too much, and the code is usually fairly efficient otherwise (again, the initialization can often be removed by the compiler), to desire optimizing them..<BR>
 <BR>
So sometimes name things to favor false being the default or more common value.<BR>
For globals esp. that saves space in the resulting executable.<BR>
For locals, well, if you initialize all your locals to zero, the compiler can optimize that, into a small loop for zeroing...if it was REALLY smart, it'd move the locals that are zero-initialized to be adjacent, but that could trade off with other factors so I don't assume it happens.<BR>
 <BR>
 - Jay<BR><BR>

<HR id=stopSpelling>
<BR>
> Date: Tue, 8 Jan 2008 12:29:30 +0100<BR>> From: lemming@henning-thielemann.de<BR>> Subject: BOOLEAN (Was: CVS Update: cm3)<BR>> To: wagner@elegosoft.com<BR>> CC: jayk123@hotmail.com; m3devel@elegosoft.com<BR>> <BR>> <BR>> On Tue, 8 Jan 2008, Olaf Wagner wrote:<BR>> <BR>> > Quoting Jay <jayk123@hotmail.com>:<BR>> ><BR>> > > Style tangent: Have people heard the advise that boolean parameters<BR>> > > are bad, because at the callsite esp. they don't give much meaning?<BR>> > > What is TRUE? What is FALSE? Enums or named parameters are clearer.<BR>> ><BR>> > I tend to agree, but this might get religious ;-)<BR>> <BR>> In Modula-3 you can explicitly write<BR>> f (switch := TRUE);<BR>> Problem is of course, that you only can but you need not.<BR>> <BR>> <BR>> Another advise I like to give about BOOLEANs is, that one should use<BR>> positive flag names, e.g. not<BR>> skipIntro := FALSE;<BR>> but<BR>> showIntro := TRUE;<BR>> <BR>> not<BR>> disableGUI := TRUE;<BR>> but<BR>> enableGUI := FALSE;<BR>> <BR><BR><br /><hr />Make distant family not so distant with Windows Vista® + Windows Live™. <a href='http://www.microsoft.com/windows/digitallife/keepintouch.mspx?ocid=TXT_TAGLM_CPC_VideoChat_distantfamily_012008' target='_new'>Start now!</a></body>
</html>