A summary of D's design principles
Walter Bright
newshound2 at digitalmars.com
Wed Sep 15 15:48:27 PDT 2010
Denis Koroskin wrote:
> On Wed, 15 Sep 2010 23:36:48 +0400, Walter Bright
> <newshound2 at digitalmars.com> wrote:
>
>> Simen kjaeraas wrote:
>>> bearophile <bearophileHUGS at lycos.com> wrote:
>>>
>>>> One of yours fixed:
>>>> - If it works in C, it works (almost) the same or not at all in D.
>>> Mind giving examples to this one? I thought this was a big no-no.
>>
>> I'm curious what bearophile is referring to, too. We've worked hard to
>> ensure that C code either produces the same result (as defined
>> behavior in C would) or fails to compile.
>>
>> And I'd add to that that the performance of C code written in D should
>> match or exceed performance of the same code compiled with a C compiler.
>>
>> I'd put this under the heading of "D As A Better C".
>
> Here is one of the examples (valid C/C++ and D program):
>
> void modify(int foo[4])
> {
> foo[0] = 42;
> }
>
> int main()
> {
> int foo[4];
> modify(foo);
>
> return foo[0]; // returns 0 in D, 42 in C/C++
> }
Yes, you're right. Just disallowing the C declaration syntax in parameters isn't
good enough, because the type may be specified by a typedef/alias.
More information about the Digitalmars-d
mailing list