[Info-vax] Significance of 2020 / 2021 date
1tim....@gmail.com
1tim.lovern at gmail.com
Sat Jan 9 17:21:34 EST 2021
On Saturday, January 9, 2021 at 3:11:04 PM UTC-7, Stephen Hoffman wrote:
> On 2021-01-09 21:38:07 +0000, 1tim.... at gmail.com said:
>
> > On Thursday, January 7, 2021 at 2:00:26 PM UTC-7, issinoho wrote:
> >> ...
> >> if (atoi (date_string + 5) > 2020).
> >
> > you are adding 5 to the ascii value of the first byte of that date string.
> The cited C code above is not adding 5 to the ASCII value of the first
> byte. The date_string + 5 syntax shown is performing pointer math, and
> moves the begining of the string by five of whatever the pointer is
> pointing to. That'll be 5 characters, if date_string is a character
> pointer as would be typical.
>
> A word or longword pointer would be somewhat unusual here, though
> pointer math works with that, too. Adding 5 would relocate by 10 or by
> 20 bytes for a word or longword pointer, respectively. But I digress.
>
> If this is a request to add 5 to the ASCII value of the first byte,
> then the code would typically be date_string[0] + 5, or maybe
> *date_string + 5, assuming a character pointer. date_string[0] and
> *date_string both return the byte value for the specified pointer,
> again assuming a character pointer.
>
> > code should read
> > if ((atoi(date_string) + 5) > 2020)'
>
> That C code will convert the contents of the bytes at the specified
> address to an integer, then add 5 to the result.
>
> (Valid input for atoi can include an optional leading + or -, then some
> number of decimal digits up to the first non-decimal-digit or the first
> null byte. Invalid string input gets a 0 as a return from atoi.)
>
> But without more context to the code, it's difficult to determine the
> intent of the programmer with absolute certainty.
>
> Hoff
> --
> Pure Personal Opinion | HoffmanLabs LLC
this is me jumping between languages again. :-(
More information about the Info-vax
mailing list