Oh d-ai-ry d-ai-ry me

Liste des GroupesRevenir à cl c 
Sujet : Oh d-ai-ry d-ai-ry me
De : rjh (at) *nospam* cpax.org.uk (Richard Heathfield)
Groupes : comp.lang.c
Date : 30. May 2025, 21:01:50
Autres entêtes
Organisation : Fix this later
Message-ID : <101d2re$l1ta$1@dont-email.me>
User-Agent : Mozilla Thunderbird
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 <stdio.h>
int main() {
     printf("Hello, world!\n");
     int x = 5;  // Declaration after executable code (invalid in C99)
     printf("x = %d\n", x);
     return 0;
}
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.

Date Sujet#  Auteur
30 May 25 * Oh d-ai-ry d-ai-ry me13Richard Heathfield
31 May 25 +* "C" code from bots (was Re: Oh d-ai-ry d-ai-ry me)4Janis Papanagnou
31 May 25 i`* Re: "C" code from bots (was Re: Oh d-ai-ry d-ai-ry me)3Richard Heathfield
31 May 25 i `* Re: "C" code from bots (was Re: Oh d-ai-ry d-ai-ry me)2Richard Tobin
4 Jun 25 i  `- Re: "C" code from bots (was Re: Oh d-ai-ry d-ai-ry me)1Andrew Smallshaw
3 Jun 25 +* Re: Oh d-ai-ry d-ai-ry me5Ar Rakin
5 Jun 25 i`* OT: Re: Oh d-ai-ry d-ai-ry me4Vir Campestris
5 Jun 25 i +* Re: OT: Re: Oh d-ai-ry d-ai-ry me2Ar Rakin
5 Jun 25 i i`- Re: OT: Re: Oh d-ai-ry d-ai-ry me1Chris M. Thomasson
5 Jun 25 i `- Re: OT: Re: Oh d-ai-ry d-ai-ry me1Kaz Kylheku
9 Jun 25 `* Re: Oh d-ai-ry d-ai-ry me3Anton Shepelev
9 Jun 25  `* Re: Oh d-ai-ry d-ai-ry me2Roberto
9 Jun 25   `- Re: Oh d-ai-ry d-ai-ry me1Roberto

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal