Some user-made C functions and their D equivalents
pascal111
judas.the.messiah.111 at gmail.com
Thu Jul 28 13:54:39 UTC 2022
On Thursday, 28 July 2022 at 13:06:03 UTC, kdevel wrote:
> On Thursday, 28 July 2022 at 12:25:05 UTC, pascal111 wrote:
>> [...]
>>> ofix.c: In function 'fix':
>>> ofix.c:7:3: warning: 'z' is used uninitialized
>>> [-Wuninitialized]
>>> 7 | y=modf(x,z);
>>> | ^~~~~~~~~
>>> ofix.c:5:12: note: 'z' was declared here
>>> 5 | double y,* z;
>>> | ^
>>> ```
>>>
>>> I would also like to complain about the double assignment to
>>> `y`.
>>
>> "fix" function is the C version of BASIC standard one I made,
>> it's the equivalent of "trunc" in D, but the code I programmed
>> for "fix" was with TC++ , and it worked in DOS emulators with
>> no problem,
>
> "Code works" and "Code is correct" are two distinct categories.
> The compiler's warnings show that your code is not correct and
> not that it will necessarily not work. Incorrect code may work
> accidentally.
>
for that we are - guys of C - prefer C of other languages like
Pascal, because C allow us to have working programs although they
are not 100% correct, but something like Pascal is so hard and
difficult in its compiling, it'll give us an error for even a so
small expression, so we don't like the much complaints of
compilers, and C is so forgiving language.
> As a (future) software developer you are required to not just
> produce code that "works" "with no problem" but also code that
> is correct. "Correct" here means that the code adheres to the
> specifications of the language.
>
> Writing incorrect code is like "fixing" a "broken" fuse with
> tin foil.
>
>> I have no idea how gcc will treat my code, but I think you are
>> right that some other compilers will refuse such code, because
>> VC++ 6 refused many of these functions codes I programmed with
>> TC++ compiler.
>
> The incorrectness of your C code does not depend on the
> compiler brand.
I have to change the compiler, not the code!
More information about the Digitalmars-d-learn
mailing list