Is  'defaults' an array, and what type? Or is that some  ANSI C++ 2022 encapsulated abstracted virtualised templated STL thingy?<br><br>Should not it be "static const u32_t defaults[] = {..."?<div class="quote" style="line-height: 1.5"><br><br>-------- Original Message --------<br>Subject: Re: [chbot] Programming 8-bit microcontrollers<br>From: Mark Atherton <markaren1@xtra.co.nz><br>To: chchrobotics@lists.linuxnut.co.nz<br>CC: <br><br><br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">would have defines 1000 as 1000L, so similar to synco, maybe cast <br>setting to u32, the multiplied by 1000L<br><br>the layout of the class looks suspicious 3 x u8, 1 x u32, 1 x u8, 1 x <br>u16 - would have tried to lay out on u32 boundaries : 1 x u32, 4 x u8, 1 <br>x u16<br><br>I can smell that Volker has set up some traps, so am looking for signed <br>/ unsigned mixes, and extensions, but I see none ...<br><br>shouldn't this trap be awarded 'un poisson de chocolat'<br><br>-mark<br><br><br><br>On 23/09/2016 5:38 PM, Synco Reynders wrote:<br> > To get a nice value for 'setting' you should cast to be 32 bit before <br>multiplying. Like:<br> > ms = (uint32_t) setting *1000<br> ><br> ><br> > On 23 September 2016 at 15:34, Volker Kuhlmann <br><list0570@paradise.net.nz> wrote:<br> ><br> >     This is for AVR, but should hold for any 8-bit job. Spot the <br>problems:<br> ><br> >     static const uint16_t setting = 15*60;<br> >     class values {<br> >       uint8_t a, b, c;<br> >       uint32_t d;<br> >       uint8_t e;<br> >       uint16_t f;<br> >     };<br> >     static const values defaults {<br> >       50, 1, 10, 0xFFB070, 5, 0x03FF<br> >     };<br> >     void func() {<br> >       unsigned long ms;<br> >       ms = setting * 1000;<br> >       ...<br> >     }<br> ><br> >     The program doesn't work in 2 places.<br> ><br> >     First solution wins a free copy of the night light firmware.<br> ><br> >     First correct solution wins 2 free copies of the night light <br>firmware.<br> ><br> >     Prize giving on Monday...<br> ><br> >     Volker<br> ><br> >     --<br> >     Volker Kuhlmann<br> >     http://volker.top.geek.nz/      Please do not CC list postings to me.<br> ><br> >     _______________________________________________<br> >     Chchrobotics mailing list Chchrobotics@lists.linuxnut.co.nz<br> >     http://lists.ourshack.com/mailman/listinfo/chchrobotics<br> >     Mail Archives: http://lists.ourshack.com/pipermail/chchrobotics/<br> >     Meetings usually 3rd Monday each month. See http://kiwibots.org <br>for venue, directions and dates.<br> >     When replying, please edit your Subject line to reflect new <br>subjects.<br> ><br> ><br> ><br> ><br> > _______________________________________________<br> > Chchrobotics mailing list Chchrobotics@lists.linuxnut.co.nz<br> > http://lists.ourshack.com/mailman/listinfo/chchrobotics<br> > Mail Archives: http://lists.ourshack.com/pipermail/chchrobotics/<br> > Meetings usually 3rd Monday each month. See http://kiwibots.org for <br>venue, directions and dates.<br> > When replying, please edit your Subject line to reflect new subjects.<br><br><br><br><br>_______________________________________________<br>Chchrobotics mailing list Chchrobotics@lists.linuxnut.co.nz<br>http://lists.ourshack.com/mailman/listinfo/chchrobotics<br>Mail Archives: http://lists.ourshack.com/pipermail/chchrobotics/<br>Meetings usually 3rd Monday each month. See http://kiwibots.org for venue, directions and dates.<br>When replying, please edit your Subject line to reflect new subjects.<br></blockquote></div>