writing program from a book

Discussion in 'C Programming' started by hpy_awad@yahoo.com, Jan 28, 2004.

  1. Guest

    I wrote that program from a book that my compile that program
    correctly under C++ compiler but I got those errors for compiling
    under unix !!

    Errors-
    --------
    part10_iti_r01_ch10_verbo_menu_driven_programs.c: In function `main':
    part10_iti_r01_ch10_verbo_menu_driven_programs.c:6: warning:
    declaration of `argc' shadows a parameter
    part10_iti_r01_ch10_verbo_menu_driven_programs.c:7: warning:
    declaration of `argv' shadows a parameter
    part10_iti_r01_ch10_verbo_menu_driven_programs.c:22: syntax error
    before '{' token

    Program-
    --------
    #include <stdio.h>
    //part10_iti_r01_ch10_verbo_menu_driven_programs.c

    main (argc,argv)
    {
    int argc;
    char *argv[50];
    {
    int option;
    do
    {
    //Display menu
    display_menu();

    //Initite appropriate program or exit
    if (option!=7) //exit
    call_program(option,argv);
    }
    while (option!=7);
    }
    display_menu()
    {
    system("clear");
    printf ("\n TV Rental system");
    printf ("\n ----------------");
    printf("\n\n 1 Set up new customer");
    printf("\n\n 2 Change existing customer record");
    printf("\n\n 3 Add new customer record");
    printf("\n\n 4 Delete customer record");
    printf("\n\n 5 Print customer bills");
    printf("\n\n 6 display a customer record");
    printf("\n\n 7 Exit");
    }


    user_selection()
    {
    int opt;
    printf("\n\n Enter required option number (1-7) ");
    scanf("%d",&opt);
    return(opt);
    }

    call_program(opt,argv)
    int opt;
    char *argv[];
    {
    switch(opt)
    {
    case 1: spawnvp(0,"a.obj",argv);
    delay();
    break;

    default:printf("\nError");
    delay();
    }
    }


    delay()
    {
    int i;
    for (i=0;i<=20000;++i);
    }
    , Jan 28, 2004
    #1
    1. Advertising

  2. "" <> wrote in message
    news:...
    > I wrote that program from a book that my compile that program
    > correctly under C++ compiler but I got those errors for compiling
    > under unix !!
    >
    > Errors-
    > --------
    > part10_iti_r01_ch10_verbo_menu_driven_programs.c: In function `main':
    > part10_iti_r01_ch10_verbo_menu_driven_programs.c:6: warning:
    > declaration of `argc' shadows a parameter
    > part10_iti_r01_ch10_verbo_menu_driven_programs.c:7: warning:
    > declaration of `argv' shadows a parameter
    > part10_iti_r01_ch10_verbo_menu_driven_programs.c:22: syntax error
    > before '{' token
    >
    > Program-
    > --------
    > #include <stdio.h>
    > file://part10_iti_r01_ch10_verbo_menu_driven_programs.c
    >
    > main (argc,argv)
    > {
    > int argc;
    > char *argv[50];
    > {


    What language is this?? I can't imagine that this would compile under C++
    or C. I think that you are trying to use old style function declarations
    of the type:

    foo(p1,p1)
    int p1;
    int p2;
    {

    ...
    }

    You should change these to the newer style function declarations:

    int foo(int p1,int p2)
    {
    ...
    }


    So this would become:

    int main(int argc, char ** argv)
    {
    int option;
    ....

    }

    > int option;
    > do
    > {
    > file://Display menu
    > display_menu();
    >
    > file://Initite appropriate program or exit
    > if (option!=7) file://exit
    > call_program(option,argv);
    > }
    > while (option!=7);
    > }
    > display_menu()
    > {
    > system("clear");
    > printf ("\n TV Rental system");
    > printf ("\n ----------------");
    > printf("\n\n 1 Set up new customer");
    > printf("\n\n 2 Change existing customer record");
    > printf("\n\n 3 Add new customer record");
    > printf("\n\n 4 Delete customer record");
    > printf("\n\n 5 Print customer bills");
    > printf("\n\n 6 display a customer record");
    > printf("\n\n 7 Exit");
    > }
    >
    >
    > user_selection()
    > {
    > int opt;
    > printf("\n\n Enter required option number (1-7) ");
    > scanf("%d",&opt);
    > return(opt);
    > }
    >
    > call_program(opt,argv)
    > int opt;
    > char *argv[];
    > {
    > switch(opt)
    > {
    > case 1: spawnvp(0,"a.obj",argv);
    > delay();
    > break;
    >
    > default:printf("\nError");
    > delay();
    > }
    > }
    >
    >
    > delay()
    > {
    > int i;
    > for (i=0;i<=20000;++i);
    > }


    Same for call_program:

    int call_program(int opt,char ** argv)
    {
    ...
    }

    Sean
    Sean Kenwrick, Jan 28, 2004
    #2
    1. Advertising

  3. () writes:

    > I wrote that program from a book that my compile that program
    > correctly under C++ compiler but I got those errors for compiling
    > under unix !!
    >
    > Errors-
    > --------
    > part10_iti_r01_ch10_verbo_menu_driven_programs.c: In function `main':
    > part10_iti_r01_ch10_verbo_menu_driven_programs.c:6: warning:
    > declaration of `argc' shadows a parameter
    > part10_iti_r01_ch10_verbo_menu_driven_programs.c:7: warning:
    > declaration of `argv' shadows a parameter
    > part10_iti_r01_ch10_verbo_menu_driven_programs.c:22: syntax error
    > before '{' token
    >
    > Program-
    > --------
    > #include <stdio.h>
    > //part10_iti_r01_ch10_verbo_menu_driven_programs.c
    >
    > main (argc,argv)
    > {


    Get rid of that brace...

    > int argc;
    > char *argv[50];


    .... and drop the old K&R style.

    > {
    > int option;
    > do
    > {
    > //Display menu
    > display_menu();
    >
    > //Initite appropriate program or exit
    > if (option!=7) //exit
    > call_program(option,argv);
    > }
    > while (option!=7);
    > }
    > display_menu()
    > {
    > system("clear");
    > printf ("\n TV Rental system");
    > printf ("\n ----------------");
    > printf("\n\n 1 Set up new customer");
    > printf("\n\n 2 Change existing customer record");
    > printf("\n\n 3 Add new customer record");
    > printf("\n\n 4 Delete customer record");
    > printf("\n\n 5 Print customer bills");
    > printf("\n\n 6 display a customer record");
    > printf("\n\n 7 Exit");
    > }
    >
    > user_selection()
    > {
    > int opt;
    > printf("\n\n Enter required option number (1-7) ");
    > scanf("%d",&opt);
    > return(opt);
    > }
    >
    > call_program(opt,argv)
    > int opt;
    > char *argv[];
    > {
    > switch(opt)
    > {
    > case 1: spawnvp(0,"a.obj",argv);


    What does spawnvp do?

    > delay();
    > break;
    >
    > default:printf("\nError");
    > delay();
    > }
    > }
    >
    > delay()
    > {
    > int i;
    > for (i=0;i<=20000;++i);
    > }


    How ancient is this. That loop takes no time at all to run here.

    --
    Måns Rullgård
    =?iso-8859-1?q?M=E5ns_Rullg=E5rd?=, Jan 28, 2004
    #3
  4. () writes in comp.unix.solaris:
    |I wrote that program from a book that my compile that program
    |correctly under C++ compiler but I got those errors for compiling
    |under unix !!
    |
    |Errors-
    |--------
    |part10_iti_r01_ch10_verbo_menu_driven_programs.c: In function `main':
    |part10_iti_r01_ch10_verbo_menu_driven_programs.c:6: warning:
    |declaration of `argc' shadows a parameter
    |part10_iti_r01_ch10_verbo_menu_driven_programs.c:7: warning:
    |declaration of `argv' shadows a parameter
    |part10_iti_r01_ch10_verbo_menu_driven_programs.c:22: syntax error
    |before '{' token
    |main (argc,argv)
    |{
    |int argc;
    |char *argv[50];
    |{

    This should be
    int main (int argc, char *argv[])
    {

    You've got too many {'s along with obsolete syntax. (As has been
    mentioned before, it appears whatever book you're using should be
    burned.)

    --
    ________________________________________________________________________
    Alan Coopersmith
    http://www.CSUA.Berkeley.EDU/~alanc/ aka:
    Working for, but definitely not speaking for, Sun Microsystems, Inc.
    Alan Coopersmith, Jan 28, 2004
    #4
  5. -berlin.de Guest

    In comp.unix.programmer Måns Rullgård <> wrote:
    > () writes:


    >> I wrote that program from a book that my compile that program
    >> correctly under C++ compiler but I got those errors for compiling
    >> under unix !!
    >>
    >> delay()
    >> {
    >> int i;
    >> for (i=0;i<=20000;++i);
    >> }


    > How ancient is this. That loop takes no time at all to run here.


    And probably every self-respecting compiler will optimize out that
    loop (i.e. throw it away because there's no result that's ever going
    to be used) unless you declare 'i' as volatile. And even then the
    time that delay will take is probably absolutely negligible. With
    any modern computer the maximum delay you'll be getting is probably
    somewhere in the order of a micro-second.

    But how you got to compile this program with a C++ compiler is
    completely beyond me. And even if you did, how is 'option' ever
    to be changed? Shouldn'd there be a call of the user_selection()
    function somewhere in main()s loop? And what's the switch in
    call_program() good for? Is only the first menu option usable?
    Or have you accidentally skipped a few pages in the book while
    copying the program? I guess the best you can do is throw that
    book away, all you can learn from it is either completely out-
    dated or plain wrong.
    Regards, Jens
    --
    \ Jens Thoms Toerring ___ -berlin.de
    \__________________________ http://www.physik.fu-berlin.de/~toerring
    -berlin.de, Jan 28, 2004
    #5
  6. Lew Pitcher Guest

    wrote:

    > I wrote that program from a book that my compile that program
    > correctly under C++ compiler


    Somehow, I doubt that.

    > but I got those errors for compiling
    > under unix !!


    The code you transcribed here is /so/ wrong.

    You are compiling bad K&R (pre-ANSI) C with ANSI C99 / C++ comments using a
    C++ compiler, and expecting it to compile properly and execute.

    1) This is not C++, so stop using a C++ compiler on it
    2) This is not C99, so lose the C++style comments
    3) There are logic errors in your code. Fix them
    (for instance, you never assign a value to your 'options' variable,
    you test the 'options' variable for a value that can never occur,
    etc.)
    4) You use platform-specific functions; either lose them or submit your
    corrected code to a forum that has knowledge of them.


    --
    Lew Pitcher, IT Consultant, Application Architecture
    Enterprise Technology Solutions, TD Bank Financial Group

    (Opinions expressed here are my own, not my employer's)
    Lew Pitcher, Jan 28, 2004
    #6
  7. Rich Teer Guest

    On Wed, 28 Jan 2004, Alan Coopersmith wrote:

    > You've got too many {'s along with obsolete syntax. (As has been
    > mentioned before, it appears whatever book you're using should be
    > burned.)


    Agreed. To the OP: Don't bother with "C for Dummies" either,
    or any other book that thinks that "void main (...)" is valid.

    I'm reading in this in comp.unix.solaris: I humbly submit that
    my forthcoming book, Solaris Systems Prorgamming, should be on
    your shopping list (in addition to a good C tutorial - my book
    assumes some C knowledge).

    One more tip: try to ask your questions in a more focussed group
    of newsgroups.

    --
    Rich Teer, SCNA, SCSA

    President,
    Rite Online Inc.

    Voice: +1 (250) 979-1638
    URL: http://www.rite-online.net
    Rich Teer, Jan 28, 2004
    #7
  8. Default User Guest

    Lew Pitcher wrote:

    > You are compiling bad K&R (pre-ANSI) C with ANSI C99 / C++ comments using a
    > C++ compiler, and expecting it to compile properly and execute.



    It's not even old-style C, because he has an opening brace before the
    argc and argv declarations, which then turns them into local variables
    (hence the error message).

    The OP needs to go back to square one, get a good book and start again
    with a few simple programs.




    Brian Rodenborn
    Default User, Jan 28, 2004
    #8
  9. wrote:

    > I wrote that program from a book that my compile that program
    > correctly under C++ compiler


    No, it didn't. Some other program did, probably one without the trivial
    error below.

    > but I got those errors for compiling
    > under unix !!


    Unix is irrelevant. Your code is broken.

    > #include <stdio.h>
    > //part10_iti_r01_ch10_verbo_menu_driven_programs.c
    >
    > main (argc,argv)
    > {
    > int argc;
    > char *argv[50];
    > {


    You are incorrectly using an outmoded style of specifying the arguments. If
    you insist on using this style, it should be

    int main(argc, argv)
    int argc;
    char *argv[];
    {

    Notice that the extra brace '{' is missing and the bogus '50' is missing.

    The modern way to do this, if you consider the last 15 years to to be the
    modern era, is
    int main(int argc, char *argv[])
    {

    Since it is normal etiquette to check the FAQs and follow the traffic on a
    newsgroup before posting, I suspect that you really knew these things. It
    is impossible to read the FAQs for and follow all of comp.lang.c,
    comp.unix.solaris, comp.unix.programmer, gnu.g++.help, and gnu.gcc.help
    without seeing these simple things done correctly.


    --
    Martin Ambuhl
    Martin Ambuhl, Jan 28, 2004
    #9
  10. Martin Ambuhl <> writes:

    > wrote:
    >
    >> I wrote that program from a book that my compile that program
    >> correctly under C++ compiler


    [snip]

    > You are incorrectly using an outmoded style of specifying the arguments. If
    > you insist on using this style, it should be
    >
    > int main(argc, argv)
    > int argc;
    > char *argv[];
    > {
    >


    Actually, even that one won't work with C++ (remember, OP is using a C++
    compiler).

    E.g. the following program (saved in /tmp/p.cc file)

    int main(argc, argv)
    int argc;
    char *argv[];
    {
    return 0;
    }

    produces the following errors:
    % g++ -c /tmp/p.cc
    /tmp/p.cc:1: error: `argc' was not declared in this scope
    /tmp/p.cc:1: error: `argv' was not declared in this scope
    /tmp/p.cc:2: error: initializer list being treated as compound expression
    /tmp/p.cc:2: error: syntax error before `int'
    /tmp/p.cc:3: error: storage size of `argv' isn't known
    /tmp/p.cc:3: error: storage size of `argv' isn't known
    /tmp/p.cc:4: error: parse error before `{' token

    Bye, Dragan

    --
    Dragan Cvetkovic,

    To be or not to be is true. G. Boole No it isn't. L. E. J. Brouwer

    !!! Sender/From address is bogus. Use reply-to one !!!
    Dragan Cvetkovic, Jan 28, 2004
    #10
  11. Alex Colvin Guest

    >I wrote that program from a book that my compile that program
    >correctly under C++ compiler but I got those errors for compiling
    >under unix !!




    >main (argc,argv)
    >{
    >int argc;
    >char *argv[50];


    since you're using the old K&R-style parameter declarations, remove
    that "{" after main.


    --
    mac the naïf
    Alex Colvin, Jan 28, 2004
    #11
  12. This isn't right.

    This isn't even wrong!


    wrote:
    > I wrote that program from a book that my compile that program
    > correctly under C++ compiler but I got those errors for compiling
    > under unix !!
    >
    > Errors-
    > --------
    > part10_iti_r01_ch10_verbo_menu_driven_programs.c: In function `main':
    > part10_iti_r01_ch10_verbo_menu_driven_programs.c:6: warning:
    > declaration of `argc' shadows a parameter
    > part10_iti_r01_ch10_verbo_menu_driven_programs.c:7: warning:
    > declaration of `argv' shadows a parameter
    > part10_iti_r01_ch10_verbo_menu_driven_programs.c:22: syntax error
    > before '{' token
    >
    > Program-
    > --------
    > #include <stdio.h>
    > //part10_iti_r01_ch10_verbo_menu_driven_programs.c
    >
    > main (argc,argv)
    > {
    > int argc;
    > char *argv[50];
    > {
    > int option;
    > do
    > {
    > //Display menu
    > display_menu();
    >
    > //Initite appropriate program or exit
    > if (option!=7) //exit
    > call_program(option,argv);
    > }
    > while (option!=7);
    > }
    > display_menu()
    > {
    > system("clear");
    > printf ("\n TV Rental system");
    > printf ("\n ----------------");
    > printf("\n\n 1 Set up new customer");
    > printf("\n\n 2 Change existing customer record");
    > printf("\n\n 3 Add new customer record");
    > printf("\n\n 4 Delete customer record");
    > printf("\n\n 5 Print customer bills");
    > printf("\n\n 6 display a customer record");
    > printf("\n\n 7 Exit");
    > }
    >
    >
    > user_selection()
    > {
    > int opt;
    > printf("\n\n Enter required option number (1-7) ");
    > scanf("%d",&opt);
    > return(opt);
    > }
    >
    > call_program(opt,argv)
    > int opt;
    > char *argv[];
    > {
    > switch(opt)
    > {
    > case 1: spawnvp(0,"a.obj",argv);
    > delay();
    > break;
    >
    > default:printf("\nError");
    > delay();
    > }
    > }
    >
    >
    > delay()
    > {
    > int i;
    > for (i=0;i<=20000;++i);
    > }


    --
    "It is impossible to make anything foolproof because fools are so
    ingenious" - A. Bloch
    Nick Landsberg, Jan 28, 2004
    #12
  13. Dragan Cvetkovic wrote:

    > Actually, even that one won't work with C++ (remember, OP is using a C++
    > compiler).


    I haven't a clue why he posted it to comp.lang.c, where we don't give a
    flip about C++. I answered the post where I read it, in comp.lang.c.
    There are many correct answers in comp.lang.c that don't work with C++.
    And we don't care.




    --
    Martin Ambuhl
    Martin Ambuhl, Jan 29, 2004
    #13
  14. Rich Teer Guest

    On Thu, 29 Jan 2004, Martin Ambuhl wrote:

    > There are many correct answers in comp.lang.c that don't work with C++.
    > And we don't care.


    Ah, I was wondering when the typical warm and cuddly c.l.c.
    comment would show up... ;-)

    --
    Rich Teer, SCNA, SCSA

    President,
    Rite Online Inc.

    Voice: +1 (250) 979-1638
    URL: http://www.rite-online.net
    Rich Teer, Jan 29, 2004
    #14
  15. Jack Klein Guest

    On 28 Jan 2004 10:33:24 -0800,
    () wrote in comp.lang.c:

    > I wrote that program from a book that my compile that program
    > correctly under C++ compiler but I got those errors for compiling
    > under unix !!
    >
    > Errors-
    > --------
    > part10_iti_r01_ch10_verbo_menu_driven_programs.c: In function `main':
    > part10_iti_r01_ch10_verbo_menu_driven_programs.c:6: warning:
    > declaration of `argc' shadows a parameter
    > part10_iti_r01_ch10_verbo_menu_driven_programs.c:7: warning:
    > declaration of `argv' shadows a parameter
    > part10_iti_r01_ch10_verbo_menu_driven_programs.c:22: syntax error
    > before '{' token
    >
    > Program-
    > --------
    > #include <stdio.h>
    > //part10_iti_r01_ch10_verbo_menu_driven_programs.c
    >
    > main (argc,argv)
    > {
    > int argc;
    > char *argv[50];
    > {


    1. Learn some manners and don't cross-post to so many unrelated
    groups.

    2. Burn that book, immediately.

    --
    Jack Klein
    Home: http://JK-Technology.Com
    FAQs for
    comp.lang.c http://www.eskimo.com/~scs/C-faq/top.html
    comp.lang.c++ http://www.parashift.com/c -faq-lite/
    alt.comp.lang.learn.c-c++
    http://www.contrib.andrew.cmu.edu/~ajo/docs/FAQ-acllc.html
    Jack Klein, Jan 29, 2004
    #15
  16. Brad Guest

    "Jack Klein" <> wrote in message
    news:...
    > On 28 Jan 2004 10:33:24 -0800,
    > () wrote in comp.lang.c:
    >
    > > I wrote that program from a book that my compile that program
    > > correctly under C++ compiler but I got those errors for compiling
    > > under unix !!
    > >
    > > Errors-
    > > --------
    > > part10_iti_r01_ch10_verbo_menu_driven_programs.c: In function `main':
    > > part10_iti_r01_ch10_verbo_menu_driven_programs.c:6: warning:
    > > declaration of `argc' shadows a parameter
    > > part10_iti_r01_ch10_verbo_menu_driven_programs.c:7: warning:
    > > declaration of `argv' shadows a parameter
    > > part10_iti_r01_ch10_verbo_menu_driven_programs.c:22: syntax error
    > > before '{' token
    > >
    > > Program-
    > > --------
    > > #include <stdio.h>
    > > //part10_iti_r01_ch10_verbo_menu_driven_programs.c
    > >
    > > main (argc,argv)
    > > {
    > > int argc;
    > > char *argv[50];
    > > {

    >

    Lets see, the error messages say that there is a problem in function main.
    Good place to start.
    It then goes on to line 6, your "int argc;" line. mmmm what is wrong here?

    Your function declaration is wrong. You are also attempting to use an old
    style of C function delcarations. Try....

    #include <stdio.h>

    main(int argc; char **argv)
    {

    // Now you can continue with the code

    > 1. Learn some manners and don't cross-post to so many unrelated
    > groups.


    Agreed.
    >
    > 2. Burn that book, immediately.
    >

    Might not be such a bad idea if the code was correctly taken out of the book.

    Brad
    Brad, Jan 29, 2004
    #16
  17. pete Guest

    Brad wrote:
    >
    > "Jack Klein" <> wrote in message
    > news:...
    > > On 28 Jan 2004 10:33:24 -0800,
    > > () wrote in comp.lang.c:
    > >
    > > > I wrote that program from a book that my compile that program
    > > > correctly under C++ compiler but I got those errors for compiling
    > > > under unix !!
    > > >
    > > > Errors-
    > > > --------
    > > > part10_iti_r01_ch10_verbo_menu_driven_programs.c: In function `main':
    > > > part10_iti_r01_ch10_verbo_menu_driven_programs.c:6: warning:
    > > > declaration of `argc' shadows a parameter
    > > > part10_iti_r01_ch10_verbo_menu_driven_programs.c:7: warning:
    > > > declaration of `argv' shadows a parameter
    > > > part10_iti_r01_ch10_verbo_menu_driven_programs.c:22: syntax error
    > > > before '{' token
    > > >
    > > > Program-
    > > > --------
    > > > #include <stdio.h>
    > > > //part10_iti_r01_ch10_verbo_menu_driven_programs.c
    > > >
    > > > main (argc,argv)
    > > > {
    > > > int argc;
    > > > char *argv[50];
    > > > {

    > >

    > Lets see, the error messages say that there is a problem in function main.
    > Good place to start.
    > It then goes on to line 6, your "int argc;" line. mmmm what is wrong here?
    >
    > Your function declaration is wrong. You are also attempting to use an old
    > style of C function delcarations. Try....
    >
    > #include <stdio.h>
    >
    > main(int argc; char **argv)
    > {


    You misspelled

    int main(int argc, char **argv)

    --
    pete
    pete, Jan 29, 2004
    #17
  18. Brad Guest

    "pete" <> wrote in message
    news:...
    > Brad wrote:
    > >
    > > "Jack Klein" <> wrote in message
    > > news:...
    > > > On 28 Jan 2004 10:33:24 -0800,
    > > > () wrote in comp.lang.c:
    > > >
    > > > > I wrote that program from a book that my compile that program
    > > > > correctly under C++ compiler but I got those errors for compiling
    > > > > under unix !!
    > > > >
    > > > > Errors-
    > > > > --------
    > > > > part10_iti_r01_ch10_verbo_menu_driven_programs.c: In function `main':
    > > > > part10_iti_r01_ch10_verbo_menu_driven_programs.c:6: warning:
    > > > > declaration of `argc' shadows a parameter
    > > > > part10_iti_r01_ch10_verbo_menu_driven_programs.c:7: warning:
    > > > > declaration of `argv' shadows a parameter
    > > > > part10_iti_r01_ch10_verbo_menu_driven_programs.c:22: syntax error
    > > > > before '{' token
    > > > >
    > > > > Program-
    > > > > --------
    > > > > #include <stdio.h>
    > > > > //part10_iti_r01_ch10_verbo_menu_driven_programs.c
    > > > >
    > > > > main (argc,argv)
    > > > > {
    > > > > int argc;
    > > > > char *argv[50];
    > > > > {
    > > >

    > > Lets see, the error messages say that there is a problem in function main.
    > > Good place to start.
    > > It then goes on to line 6, your "int argc;" line. mmmm what is wrong

    here?
    > >
    > > Your function declaration is wrong. You are also attempting to use an old
    > > style of C function delcarations. Try....
    > >
    > > #include <stdio.h>
    > >
    > > main(int argc; char **argv)
    > > {

    >
    > You misspelled
    >
    > int main(int argc, char **argv)
    >


    Correct, thanx.

    Brad
    Brad, Jan 30, 2004
    #18
  19. On Wed, 28 Jan 2004 20:36:18 GMT, Default User
    <> wrote:

    > Lew Pitcher wrote:
    >

    (re: main (argc, argv) /*spurious*/{ int argc; char *argv[50]; { etc.)

    > > You are compiling bad K&R (pre-ANSI) C with ANSI C99 / C++ comments using a
    > > C++ compiler, and expecting it to compile properly and execute.

    >
    > It's not even old-style C, because he has an opening brace before the
    > argc and argv declarations, which then turns them into local variables
    > (hence the error message).
    >

    It is facially valid oldstyle C89 (or prestandard), because the
    parameters argc and argv are implicitly int, as is the return from
    main(); the parameters are then shadowed by locals which is perfectly
    legal though rarely wise and (hence) was only a warning not an error.
    The result is Undefined Behavior because main() is only defined to
    work for zero arguments (void) or two arguments (int, char**),
    although in practice on many (most?) implementations since the
    parameters argc and argv are not (cannot be) accessed this would still
    (sort of) work -- in the absence of the OP's *other* bugs.

    - David.Thompson1 at worldnet.att.net
    Dave Thompson, Feb 5, 2004
    #19
  20. David Combs Guest

    In article <FMXRb.130665$>,
    Nick Landsberg <> wrote:
    >This isn't right.
    >
    >This isn't even wrong!


    Super quote!

    What physicsist was it who originally said it?

    David
    David Combs, Feb 19, 2004
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Nathan Sokalski
    Replies:
    2
    Views:
    362
  2. Thanasis \(sch\)

    awt book+java animation book

    Thanasis \(sch\), Oct 13, 2004, in forum: Java
    Replies:
    1
    Views:
    588
    Alex Hunsley
    Oct 14, 2004
  3. coltrane
    Replies:
    2
    Views:
    463
    coltrane
    Sep 27, 2006
  4. Gio

    Puzzle Book & Answer Book

    Gio, Apr 17, 2008, in forum: C Programming
    Replies:
    1
    Views:
    385
    santosh
    Apr 17, 2008
  5. G G
    Replies:
    6
    Views:
    190
Loading...

Share This Page