<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:blue;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p
        {mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman";}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:595.3pt 841.9pt;
        margin:3.0cm 2.0cm 3.0cm 2.0cm;}
div.Section1
        {page:Section1;}
-->
</style>
</head>
<body lang=DA link=blue vlink=blue>
<div class=Section1>
<p class=MsoNormal><a name=""><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy'>Hi John.<o:p></o:p></span></font></a></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>Alright, it’s not
that I use more than 8 flags at the moment, but I thought that at some point in
time someone may in the other module raise the defined nr. that in this module is
the reason for the nr. of flags needed. And then I have a memory leak.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>So the easiest way is
only to accept inputs < 8 for the flag function. And then hope that it will
become very clear that more space is needed when the SW change does not work. <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>But…<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>An error message would be
so nice.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>Thanks.<o:p></o:p></span></font></p>
<div>
<p><font size=3 color=navy face="Times New Roman"><span lang=EN-GB
style='font-size:12.0pt;color:navy'>Med venlig hilsen / Best regards / mit
freundlich</span>en Grüßen</font><font color=navy><span style='color:navy'><o:p></o:p></span></font></p>
<p><b><font size=3 color=navy face="Times New Roman"><span style='font-size:
12.0pt;color:navy;font-weight:bold'>EC POWER A/S</span></font></b><font
color=navy><span style='color:navy'><o:p></o:p></span></font></p>
<p><st1:PersonName w:st="on"><b><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy;font-weight:bold'>Steven Lose</span></font></b></st1:PersonName><font
color=navy><span style='color:navy'><o:p></o:p></span></font></p>
<p><font size=3 color=navy face="Times New Roman"><span style='font-size:12.0pt;
color:navy'>Software Ingeniør<o:p></o:p></span></font></p>
<p><font size=3 color=navy face="Times New Roman"><span style='font-size:12.0pt;
color:navy'>Tlf.: +45 87434100<o:p></o:p></span></font></p>
<p><font size=3 color=navy face="Times New Roman"><span style='font-size:12.0pt;
color:navy'>Direkte tlf. +45 58286608<o:p></o:p></span></font></p>
<p><font size=3 color=navy face="Times New Roman"><span style='font-size:12.0pt;
color:navy'>Email: <a href="blocked::mailto:bsl@ecpower.dk">sl@ecpower.dk</a><o:p></o:p></span></font></p>
<p><font size=3 color=navy face="Times New Roman"><span style='font-size:12.0pt;
color:navy'><a href="http://www.ecpower.dk">www.ecpower.dk</a></span></font><o:p></o:p></p>
</div>
<div>
<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>
<hr size=2 width="100%" align=center tabindex=-1>
</span></font></div>
<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>Fra:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>
icc-avr-bounces@imagecraft.com [mailto:icc-avr-bounces@imagecraft.com] <b><span
style='font-weight:bold'>På vegne af </span></b>John Baraclough<br>
<b><span style='font-weight:bold'>Sendt:</span></b> 5. juli 2007 23:00<br>
<b><span style='font-weight:bold'>Til:</span></b> Discussion list for ICCAVR
and ICCtiny Users. You do NOT need tosubscribe to icc-announce if you are a
member of this.<br>
<b><span style='font-weight:bold'>Emne:</span></b> RE: [Icc-avr] check for
adequately nr. of bits</span></font><o:p></o:p></p>
</div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>You could indeed, but it would be very unwise. Single bit flags should <b><span
style='font-weight:bold'>always</span></b> be stored in 8-bit variables,
otherwise there is a very large overhead in setting, clearing or testing any
flag. This is the way I define flag macros for fastest execution:<br>
<br>
</span></font><font face="Courier New"><span style='font-family:"Courier New"'>#include
<macros.h><br>
<br>
#define
SCR_BIT
0<br>
#define
RUN_BIT
1<br>
#define
SEN_BIT
2<br>
#define
CHA_BIT
3<br>
#define
UPD_BIT
4<br>
<br>
<font color=green><span style='color:green'>// Flow control flags.<br>
</span></font>#define
TEST_SCREEN_FLAG
gucFlags&BIT(SCR)<br>
#define
SET_SCREEN_FLAG
gucFlags|=BIT(SCR)<br>
#define
CLEAR_SCREEN_FLAG
gucFlags&=~BIT(SCR)<br>
<br>
#define
TEST_RUN_FLAG
gucFlags&BIT(RUN)<br>
#define
SET_RUN_FLAG
gucFlags|=BIT(RUN)<br>
#define
CLEAR_RUN_FLAG
gucFlags&=~BIT(RUN)<br>
<br>
#define
TEST_SEND_FLAG
gucFlags&BIT(SEN)<br>
#define
SET_SEND_FLAG
gucFlags|=BIT(SEN)<br>
#define CLEAR_SEND_FLAG
gucFlags&=~BIT(SEN)<br>
<br>
#define
TEST_CHANGE_FLAG
gucFlags&BIT(CHA)<br>
#define
SET_CHANGE_FLAG
gucFlags|=BIT(CHA)<br>
#define
CLEAR_CHANGE_FLAG
gucFlags&=~BIT(CHA)<br>
<br>
#define TEST_UPDATE_FLAG
gucFlags&BIT(UPD)<br>
#define
SET_UPDATE_FLAG
gucFlags|=BIT(UPD)<br>
#define
CLEAR_UPDATE_FLAG
gucFlags&=~BIT(UPD)<br>
<br>
</span></font>Whichever way you choose, stay with 8-bit variable as the holders
for flags.<br>
<br>
HTH<br>
<br>
All the best for now,<br>
John<br>
<br>
At 21:13 05/07/2007, you wrote:<br>
<br>
<o:p></o:p></p>
<p class=MsoNormal><font size=3 color=blue face="Times New Roman"><span
style='font-size:12.0pt;color:blue'>couldn't you simply say<br>
</span></font> <br>
<font color=blue><span style='color:blue'>#if </span></font><font size=2><span
style='font-size:10.0pt'>NROFFLAGS<17<br>
<br>
Unsigned int uiFlags;<br>
<br>
#else<br>
<br>
Unsigned long uiFlags;<br>
#endif<br>
</span></font> <br>
<font size=2><span style='font-size:10.0pt'>Albert<br>
</span></font> <br>
<o:p></o:p></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=2 face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma'>-----Original Message-----<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=2 face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma'>From: Jaspers, Ton [<a
href="mailto:t.jaspers@cpseurope.com" eudora=autourl> mailto:t.jaspers@cpseurope.com</a>]<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=2 face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma'>Sent: Friday, 6 July 2007 12:45
a.m.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=2 face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma'>To: Discussion list for ICCAVR and
ICCtiny Users. You do NOT need to subscribeto icc-announce if you are a member
of this.<o:p></o:p></span></font></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face=Tahoma><span style='font-size:
10.0pt;font-family:Tahoma'>Subject: RE: [Icc-avr] check for adequately nr. of
bits</span></font><o:p></o:p></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>I don't think it is a
linker issue. It is a coding issue. You could try to use teh pre-processor with
something like this:<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=2
face="Times New Roman"><span style='font-size:10.0pt'>
#include <limits.h></span></font><o:p></o:p></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=2
face="Times New Roman"><span style='font-size:10.0pt'>
#define NROFFLAGS 17</span></font><o:p></o:p></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=2
face="Times New Roman"><span style='font-size:10.0pt'>
#if (1<<(NROFFLAGS-1)) > UINT_MAX</span></font><o:p></o:p></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>
ERROR “VALUE TO SMALL” <o:p></o:p></span></font></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'> #endif</span></font><o:p></o:p></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=2
face="Times New Roman"><span style='font-size:10.0pt'>Mind you, I have not
tried it.</span></font><o:p></o:p></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=2
face="Times New Roman"><span style='font-size:10.0pt'>Cheers,<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=2
face="Times New Roman"><span style='font-size:10.0pt'>Ton</span></font><o:p></o:p></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> <o:p></o:p></span></font></p>
<div class=MsoNormal align=center style='margin-left:36.0pt;text-align:center'><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'>
<hr size=2 width="100%" align=center>
</span></font></div>
<p class=MsoNormal style='margin-left:36.0pt'><font size=2 face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma'>From:
icc-avr-bounces@imagecraft.com [<a href="mailto:icc-avr-bounces@imagecraft.com"
eudora=autourl> mailto:icc-avr-bounces@imagecraft.com</a>] On Behalf Of <st1:PersonName
w:st="on">Steven Lose</st1:PersonName><o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=2 face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma'>Sent: donderdag 5 juli 2007 12:59<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:36.0pt'><font size=2 face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma'>To: <st1:PersonName w:st="on">Discussion
list for ICCAVR and ICCtiny Users. You do NOT need tosubscribeto icc-announce
if you are a member of this.</st1:PersonName><o:p></o:p></span></font></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face=Tahoma><span style='font-size:
10.0pt;font-family:Tahoma'>Subject: [Icc-avr] check for adequately nr. of bits</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>Hi.</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>I want to make the linker check that a variable is
defined big enough, but don’t know how.</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>Basically I need something that tells me how many bits
there is in a variable so I can check it up against a defined value.</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>#define NROFFLAGS 17</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>Unsigned int uiFlags;</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>#if NROFFLAGS > NROFBITS(uiFlags)</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'> ERROR “VALUE TO SMALL”</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>#endif</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>Is it possible to do so? (if it had been in code I
would just use (sizeof(uiFlags)*8) )</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>And if yes, what is the right way to do it?</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>Med venlig hilsen / Best regards / mit freundlichen
Grüßen<o:p></o:p></span></font></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'>EC POWER A/S</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><st1:PersonName w:st="on"><font size=3 color=navy
face="Times New Roman"><span style='font-size:12.0pt;color:navy'>Steven Lose</span></font></st1:PersonName><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>Software Ingeniør<o:p></o:p></span></font></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>Tlf.: +45 87434100<o:p></o:p></span></font></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>Direkte tlf. +45 58286608<o:p></o:p></span></font></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>Email: <a href="blocked::mailto:bsl@ecpower.dk">sl@ecpower.dk</a><o:p></o:p></span></font></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'><a href="http://www.ecpower.dk/" eudora=autourl>www.ecpower.dk</a><o:p></o:p></span></font></p>
<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'> <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>_______________________________________________<br>
Icc-avr mailing list<br>
Icc-avr@imagecraft.com<br>
<a href="http://dragonsgate.net/mailman/listinfo/icc-avr" eudora=autourl>http://dragonsgate.net/mailman/listinfo/icc-avr</a><o:p></o:p></span></font></p>
</div>
</body>
</html>