Re: [LAU] OT: C or C++?

From: James Morris <jwm.art.net@email-addr-hidden>
Date: Fri Oct 15 2010 - 10:43:25 EEST

On 15 October 2010 08:13, Philipp Überbacher <hollunder@email-addr-hidden> wrote:
> Excerpts from R. Mattes's message of 2010-10-14 22:35:56 +0200:
>> > What does the following example evaluate to?
>> >    1.2+3+"||"+3+2.1
>>
>> $ cat > Foo.ava
>> class Foo
>> {
>>   static { System.out.println( 1.2+3+"||"+3+2.1 ); System.exit( 0 ); }
>> }
>> ^D
>> $ javac Foo.java
>> $ java Foo
>>
>> C'm on, that's not really that hard, no Eclipse, no packages, no real object.
>
> Is this using some implicit main() or something?
>
>> > I think there's far too much distracting mess to sort out before you
>> > even get to programing, so I don't think it's a good teaching language
>> > (for total beginners at least).
>>
>> What's distracting here?
>>
>> Regarding your example -my main question would be: what do _you_ expect from that
>> code. 'I'd say you get what you ask for.
>
> I wouldn't expect 4.2||32.1 as a result. Either interpret the whole
> thing as a string, or the number parts as float or don't do this kind of
> automagic conversion at all. Interpreting numbers as numbers and
> interpreting numbers as string in the same statement is something I
> wouldn't expect.

Breaking your expectations is the exact point of statements like
1.2+3+"||"+3+2.1. You'll find similar statements for every language.
Knowing why they produce the unexpected is important for debugging
your code. Unless you're entering a code-obfuscation contest you
shouldn't write code like that.

James.
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-user
Received on Fri Oct 15 12:15:03 2010

This archive was generated by hypermail 2.1.8 : Fri Oct 15 2010 - 12:15:03 EEST