delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/06/02/13:48:17

Date: Fri, 02 Jun 1995 18:12:55 CET
From: kwasik AT lodz2 DOT p DOT lodz DOT pl
To: DJGPP AT SUN DOT SOE DOT CLARKSON DOT EDU
Subject: Changing constants...

        Hi !!!

Yesterday I found something which was rather interesting for me.
I tried to change constant pointer and the constant value pointed by that
pointer.
Well...   When I compiled with bcc everything was OK. Then, I thought
about gcc from DJGPP package and here's what I've found:

/* Program const.c */
int main()
{
 int var1=13,var2 = 1;
 const int* const swsi = &var1;

 /*There are two errors compiling as C++ !!!*/
 (int *) swsi = &var2;          /*First*/
 (int) *swsi = 2;               /*Second*/
 return 0;
}

While compiling as c-source:

gcc -O -Wall const.c -o const
                                  I got two warnings but program compiled
                                  just fine.

while compiling as C++ source:

gcc -O -Wall -x c++ const.c -o const
                                  I got two errors (Yes errors ???) and
                                  compilation was stoped.

Two above constructions are legal !!!. See for example:
--->"The C++ Programming Language" by Bjarne Stroustrup.<---
    second edition.


I suppose it's rather strange when C++ compiler finds in a regular statement
an error. I think it is not as it should be.


                                                Balzack.


Krzysztof Wa/sik
e-mail: kwasik AT lodz2 DOT p DOT lodz DOT pl

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019