I've seen a lot of the minimal requirements that an ANSI C compiler must support like 31 arguments to a function, and most of the numbers seem to make some kind of sense.
However, I cannot see the reasoning for supporting at least 509 characters in a source line. 511 or 512 would make more sense, but 509 seems kind of arbitrary.
What is the reason for this number?
This perhaps is to take account of possible CR
+ LF
+ '\0'
characters and have a string representation of each line still fit into 512 bytes of memory.