home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.c      Meh, in C you gotta define EVERYTHING      243,242 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 241,381 of 243,242   
   Bonita Montero to All   
   Re: Oh d-ai-ry d-ai-ry me   
   21 Oct 25 15:51:34   
   
   From: Bonita.Montero@gmail.com   
      
   Am 30.05.2025 um 22:01 schrieb Richard Heathfield:   
   > This evening I accidentally bumped into a chatbot, and I wondered   
   > whether it was any good at C programming.   
   >   
   > I was impressed when it solved Goldbach's Conjecture (admittedly for   
   > small n) and 5-disc Hanoi, but then I thought back to a recent thread   
   > here (which I have no intent of resurrecting), so I asked it if it could   
   > have saved me a job if I'd only asked it a few hours ago.   
   >   
   > Judge for yourselves!   
   >   
   > I asked: "Write a program that is valid C90 but invalid C99."   
   >   
   > ChatGPT said:   
   >   
   > Certainly! To illustrate this, I'll write a C program that is valid in   
   > C90 but invalid in C99. The key difference between C90 and C99 revolves   
   > around variable declaration and initialization.   
   > Key Issue:   
   >   
   >      In C90, variables can only be declared at the beginning of a block   
   > (before any executable code).   
   >   
   >      In C99, variables can be declared anywhere within a block, even   
   > between statements.   
   >   
   > C Program Example:   
   >   
   > This program is valid in C90 but invalid in C99 because the variable x   
   > is declared after executable code.   
   >   
   > #include    
   >   
   > int main() {   
   >      printf("Hello, world!\n");   
   >   
   >      int x = 5;  // Declaration after executable code (invalid in C99)   
   >   
   >      printf("x = %d\n", x);   
   >      return 0;   
   > }   
      
   Is this relevant to know today ?   
      
   > Why it’s Valid in C90:   
   >   
   >      In C90, all variable declarations must appear at the beginning of a   
   > block (before any code). This program would be valid in C90 because x is   
   > declared after the printf statement, but only the declaration of x   
   > itself breaks the rule in C99.   
   >   
   > Why it’s Invalid in C99:   
   >   
   >      In C99, variables can be declared anywhere within a block, even   
   > after executable statements (not just at the beginning of a block). This   
   > is why the above code would cause an error in C99, as the variable x is   
   > declared after a statement (printf).   
   >   
   > Compilation Example:   
   >   
   > If you compile this program with a C99 compiler (e.g., GCC), you'll get   
   > an error similar to this:   
   >   
   > error: variable 'x' declared after statement   
   >   
   > To summarize:   
   >   
   >      C90 allows this style (declaration after code).   
   >   
   >      C99 does not allow it, so the program becomes invalid.   
   >   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca