Re: warning in main.m
Re: warning in main.m
- Subject: Re: warning in main.m
- From: Shawn Erickson <email@hidden>
- Date: Sun, 4 Jan 2004 09:36:52 -0800
On Jan 4, 2004, at 1:02 AM, Eric Albert wrote:
At 8:46 PM -0500 12/30/03, Wayne Hasley wrote:
On 12/30/03 8:24 PM, "matt neuburg" <email@hidden> wrote:
// main.m
#import <Cocoa/Cocoa.h>
int main(int argc, char *argv[])
{
return NSApplicationMain(argc, argv); // warning here!
}
The warning reads: "passing arg 2 of `NSApplicationMain' from
incompatible
pointer type".
What does this mean and how do I make it stop? Why is it happening
all of a
sudden like this? Thx - m.
Are 2 should be a const...
Change it to:
int main(int argc, const char *argv[])
{
return NSApplicationMain(argc, argv); // warning here!
}
Actually, argument 2 should not be const, and Xcode 1.1 is correct.
The ISO C standard specifies that the second argument to main() is a
char *[], not a const char *[]. Using a const char *[] by default is
not really ideal because it implies an additional restriction on the
second argument that the standard doesn't require.
That leads to the second issue, which is the warning. GCC is actually
somewhat nice in only warning for this rather than displaying an
error. Converting a const char ** to a char ** is illegal in C
because the allowed conversion from pointer-to-const-T to pointer-to-T
doesn't apply recursively. See
<http://www.eskimo.com/~scs/C-faq/q11.10.html> for details.
In other words, either the template should cast or NSApplicationMain
should take a char *[] as its second argument, but the change in
Xcode's template makes the template more standards-compliant. I'm not
on any of the teams that are involved here, but I'd vote for
NSApplicationMain being changed for the same reason as changing main.m
was the right thing to do. I think we already have a bug report about
that. :)
Note that many of the other main templates in Xcode 1.1 still have
const defined for the second parameter (for example the apple script
application templates and the tool templates). I guess the main
templates need to be synced up.
-Shawn
_______________________________________________
xcode-users mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/xcode-users
Do not post admin requests to the list. They will be ignored.