Deutsch   English   Français   Italiano  
<101n6iq$45oj$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Ar Rakin <rakinar2@onesoftnet.eu.org>
Newsgroups: comp.lang.c
Subject: Re: Oh d-ai-ry d-ai-ry me
Date: Tue, 3 Jun 2025 22:06:50 +0600
Organization: OSN
Lines: 77
Message-ID: <101n6iq$45oj$1@dont-email.me>
References: <101d2re$l1ta$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 03 Jun 2025 18:06:51 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="fb5a63833d1ca0431395a8385205fb57";
	logging-data="136979"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX18UU2b9z7EQNG9nmU/HmuWIbZdPtUhfHiQ="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:tB8ePZyGvZfvJhdCbRZG4z0aKjc=
In-Reply-To: <101d2re$l1ta$1@dont-email.me>
Content-Language: en-US

On 5/31/25 2:01 AM, Richard Heathfield wrote:
> 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.
> 

This is the reason why I tell people who write code that AI/LLMs can't 
ever replace them like this.  AI tools can only be a tool that you use. 
To write code, you'd still need to know something by yourself at the end 
of the day.

-- 
Rakin