René Scharfe wrote:
> Am 27.04.2013 21:19, schrieb Ramsay Jones:
>> In order to suppress these warnings, since both of the main
>> functions need to be declared with the same prototype, we
>> change the declaration of the 9 main functions, thus:
>>
>>      int main(int argc, char **argv)
> 
> Why not take the opposite direction with a patch like this?  It's quick
> and dirty and based on v1.8.1.msysgit.1, as that was the version I had
> lying around here, but you get the idea.

The main reason (99%) was patch size. I only noticed a "recent trend"
to declare the main() with a 'const char **argv' parameter because,
over the years, I've had to keep adding to this patch. (Having said
that, I suspect it has only been about four additions in four years).

The other 1% is simply that it just looks wrong! (yeah, this new
'const' thingamajig has it's uses, but still ... :-D ).

Just FYI, the C99 standard has this to say:

    c99 standard 5.1.2.2.1 "Program startup"

    The function called at program startup is named main. The
    implementation declares no prototype for this function. It
    shall be defined with a return type of int and with no
    parameters:

        int main(void) { /* ... */ }

    or with two parameters (referred to here as argc and argv,
    though any names may be used, as they are local to the
    function in which they are declared);

        int main(int argc, char *argv[]) { /* ... */ }

    or equivalent;^9 or in some other implementation-defined
    manner.

    [note 9: Thus, int can be replaced by a typedef name
    defined as int, or the type of argv can be written as
    char **argv, and so on.]

    ...

        - The parameters argc and argv and the strings pointed
        to by the argv array shall be modifiable by the program,
        and retain their last-stored values between program
        startup and program termination.


That "... or in some other implementation-defined manner." tends
to make this text somewhat weak!

ATB,
Ramsay Jones




--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to