/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
[BC5] Mærkelig compiler warning
Fra : Thomas L. Christense~


Dato : 22-02-02 21:52

Hej

Jeg er ret ny udi Borland C++ 5.0, så jeg har lidt problemer med
at finde ud af hvad der sker. Jeg sidder her med noget kode, hvor
en struct bliver defineret og tildelt værdier sådan her:

struct
{
int iIndex ;
TCHAR * szLabel ;
TCHAR * szDesc ;
}
sysmetrics [] =
{
SM_CXSCREEN, TEXT ("SM_CXSCREEN"),
TEXT ("Screen width in pixels"),
SM_CYSCREEN, TEXT ("SM_CYSCREEN"),
TEXT ("Screen height in pixels"),
   /* ... */
}

.... og det giver følgende warning:

[blah blah] Initialization is only partially bracketed

Yes. I hjælpen kan jeg om den her warning læse at

"(Command-line option to display warning: -wpin)
When structures are initialized, braces can be used to mark the
initialization of each member of the structure.
If a member itself is an array or structure, nested pairs of
braces can be used.
This ensures that the compiler's idea and your idea of what value
goes with which member are the same.
When some of the optional braces are omitted, the compiler issues
this warning.
Choose Options|Project|Messages|ANSI Violations to control the
display of this warning from the IDE.
Default = Off"

Default = Off? Hvorfor hulen får jeg så den warning? Hmm... Mon
den så skal være true for at den *ikke* bliver vist? Nope! Den
bliver vist uanset hvad! Gør jeg et eller andet forkert?

Jeg kan selvfølgelig sætte "braces" (hvad hedder sådan nogle
fætre på dansk?) om de enkelte medlemmer, men det er der jo ikke
meget "optional" over, og jeg vil egentlig også hellere lære BC5
at lade være med at brokke sig over at de mangler. Kan man det?
Nogen der har et bud på hvad der er galt?


--
Med venlig hilsen
Thomas L. Christensen, Svendborg

 
 
Ivan Johansen (22-02-2002)
Kommentar
Fra : Ivan Johansen


Dato : 22-02-02 23:34

Thomas L. Christensen wrote:

> Hej
>
> Jeg er ret ny udi Borland C++ 5.0, så jeg har lidt problemer med
> at finde ud af hvad der sker.

Jeg kender ikke rigtigt Borland C++ 5. Det er et meget gammelt program.

> Jeg kan selvfølgelig sætte "braces" (hvad hedder sådan nogle
> fætre på dansk?) om de enkelte medlemmer, men det er der jo ikke
> meget "optional" over, og jeg vil egentlig også hellere lære BC5
> at lade være med at brokke sig over at de mangler. Kan man det?
> Nogen der har et bud på hvad der er galt?


I Borland C++ Builder 5 (BCB5) kan man under options vælge hvilke
warnings man vil have vist. Jeg er sikker på at det også findes i den
gamle BC5.

Ivan Johansen



Mogens Hansen (23-02-2002)
Kommentar
Fra : Mogens Hansen


Dato : 23-02-02 00:18


"Thomas L. Christensen" <tlc@get2net.dk> wrote in message

>
> struct
> {
> int iIndex ;
> TCHAR * szLabel ;
> TCHAR * szDesc ;
> }
> sysmetrics [] =
> {
> SM_CXSCREEN, TEXT ("SM_CXSCREEN"),
> TEXT ("Screen width in pixels"),
> SM_CYSCREEN, TEXT ("SM_CYSCREEN"),
> TEXT ("Screen height in pixels"),
> /* ... */
> }
>

Petzold har ikke levet forgæves. SYSMETS.H
Det er en udemærket bog, men der er ikke nogen der siger at det ikke kan
gøres bedre.

Du er ved at lave et array af strukturer.
Prøv at sættes brackets omkring hvert element i arrayet:

struct
{
int iIndex ;
TCHAR * szLabel ;
TCHAR * szDesc ;
}
sysmetrics [] =
{
{ SM_CXSCREEN, TEXT ("SM_CXSCREEN"), TEXT ("Screen width in
xels") },
{ SM_CYSCREEN, TEXT ("SM_CYSCREEN"), TEXT ("Screen height in pixels") }
} ;


>
> Default = Off? Hvorfor hulen får jeg så den warning? Hmm... Mon
> den så skal være true for at den *ikke* bliver vist? Nope! Den
> bliver vist uanset hvad! Gør jeg et eller andet forkert?
>

Alle warnings er sikker slået til - det er default, og almindeligvis meget
fornuftigt.
Man bør være _sikker_ på at man ikke har brug for den pågældende warning, så
man ikke bare slår den fra i afmagt.
Som regel er det at opfatte som en hjælp fra en erfaren programmør.

Vælg "Options | Project" for at åbne option dialogen.
På yderste niveau i "Messages" er der 3 radiobuttons i gruppen "Message
Set":
* All
* Selected
* None

Når "All" (og "None") er valgt, er det ligegyldigt hvad der er valgt på det
mere detaljerede niveau.
Når "Selected" er valgt er de underliggende valgt gyldige.

Pas i øvrigt på ikke at blive forvirret over "local node override" - det er
kompliceret men nødvendig.


Venlig hilsen

Mogens Hansen



Thomas L. Christense~ (23-02-2002)
Kommentar
Fra : Thomas L. Christense~


Dato : 23-02-02 06:45

"Mogens Hansen" <mogens_h@dk-online.dk> wrote:

>Petzold har ikke levet forgæves. SYSMETS.H

Meget godt genkendt...


>Det er en udemærket bog, men der er ikke nogen der siger at det ikke kan
>gøres bedre.

Hvad tænker du på? Findes der bedre bøger om Win32 API? Eller
synes du bare det er lidt håbløst at skrive i C, når man nu der
findes MFC og OOP?


>På yderste niveau i "Messages" er der 3 radiobuttons i gruppen "Message
>Set":
> * All
> * Selected
> * None

Yes! Her var synderen.


>Pas i øvrigt på ikke at blive forvirret over "local node override"

Hmm... Det må jeg hellere kigg på også. Tak for hjælpen.


--
Med venlig hilsen
Thomas L. Christensen, Svendborg

Mogens Hansen (23-02-2002)
Kommentar
Fra : Mogens Hansen


Dato : 23-02-02 08:11


"Thomas L. Christensen" <tlc@get2net.dk> wrote
> "Mogens Hansen" <mogens_h@dk-online.dk> wrote:

>
> >Det er en udemærket bog, men der er ikke nogen der siger at det ikke kan
> >gøres bedre.
>
> Hvad tænker du på? Findes der bedre bøger om Win32 API? Eller
> synes du bare det er lidt håbløst at skrive i C, når man nu der
> findes MFC og OOP?
>

Nej, jeg mener blot at jeg foretrækker at have de ekstra backets i
initialiseringen af arrayet af strukturer.
Jeg syntes det gør koden tydeligere, og hvis det samtidig fjerner warnings
syntes jeg at det er en forbedring.

Petzold er den bedste bog om Win32 API som jeg kender. Jeg brugte den i sin
tid til at lære Windows 3.0 programmering, og jeg købte Fith Edition for
nyligt.

Om det er håbløst at skrive direkte til Win32 API i C er en helt anden snak,
og så kategorisk vil jeg slet ikke sige det.
Det samme gælder brugen af en forholdsvis gammel compiler (Vær sikker på at
bruge V5.02 - den er væsentligt bedre end V5.0 og V5.01 som begge var alt
for ustabile).


Venlig hilsen

Mogens Hansen



Thomas L. Christense~ (23-02-2002)
Kommentar
Fra : Thomas L. Christense~


Dato : 23-02-02 13:07

"Mogens Hansen" <mogens_h@dk-online.dk> wrote:

>> Hvad tænker du på? Findes der bedre bøger om Win32 API? Eller
>> synes du bare det er lidt håbløst at skrive i C, når man nu der
>> findes MFC og OOP?
>
>Nej, jeg mener blot at jeg foretrækker at have de ekstra backets i
>initialiseringen af arrayet af strukturer.

Hmm.. Ja, det tror jeg egentlig også jeg gør...

>(Vær sikker på at
>bruge V5.02 - den er væsentligt bedre end V5.0 og V5.01 som begge var alt
>for ustabile).
>
>
Ja, hehe, jeg kører selvfølgelig med 5.0. Hvordan opgraderer man?
Jeg har lige været forbi Borlands hjemmeside, men fandt ikke lige
noget der fortalte om hvordan man opgraderer. Det eneste jeg
fandt var

http://www.borland.com/devsupport/borlandcpp/patches.html

som kun ændrer 5.0 til 5.0B.

Men, som det er blevet sagt, det er jo en ældre sag efterhånden.
Jeg tror faktisk jeg vil investere i MVC++6.0 std. Den koster
ikke alverden - og så får jeg også en lidt mere up-to-date
API-reference...


--
Med venlig hilsen
Thomas L. Christensen, Svendborg

Thomas L. Christense~ (23-02-2002)
Kommentar
Fra : Thomas L. Christense~


Dato : 23-02-02 13:28

Thomas L. Christensen <tlc@get2net.dk> wrote:

>Jeg har lige været forbi Borlands hjemmeside, men fandt ikke lige
>noget der fortalte om hvordan man opgraderer. Det eneste jeg
>fandt var
>
>http://www.borland.com/devsupport/borlandcpp/patches.html

....og hvis jeg havde kigget lidt bedre efter, så havde jeg set,
at under Borland C++ 5.01står der

"U.S. customers can order Borland C++ 5.02 by calling
1-800-932-9994. Outside the U.S., please contact your local
Borland office. Borland C++ 5.02 contains all the fixes from the
patches below, plus other fixes as well. "

Okay, nogen her der tilfældigvis ved hvem mit "local Borland
office" er? Importøren?

--
Med venlig hilsen
Thomas L. Christensen, Svendborg

Mogens Hansen (23-02-2002)
Kommentar
Fra : Mogens Hansen


Dato : 23-02-02 14:24


"Thomas L. Christensen" <tlc@get2net.dk> wrote in message
news:np0f7usbtj9o1v7qa4ehpfr9etdtncb7rn@news.get2net.dk...

> Men, som det er blevet sagt, det er jo en ældre sag efterhånden.
> Jeg tror faktisk jeg vil investere i MVC++6.0 std.

Jeg tror ikke at den findes mere, nu da Visual Studio .NET er frigivet.
Visual C++ .NET har iøvrigt en langt bedre C++ implementering end Visual C++
V6.0, hvis det spiller en rolle.
Visual C++ .NET ikke som en selvstændig pakke, men er del af Visual Studio
..NET Professional 2002.
Se f.eks.
http://www.ravenholm.dk/docs/software.asp?productID=2145226460
for eksempler på prisen

Venlig hilsen

Mogens Hansen



Mogens Hansen (23-02-2002)
Kommentar
Fra : Mogens Hansen


Dato : 23-02-02 14:30


"Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
news:a5853m$31l$1@news.cybercity.dk...

> Visual C++ .NET ikke som en selvstændig pakke, men er del af Visual Studio
> .NET Professional 2002.

hmm. jo den gør tilsyneladende, og den koster kr. 941. Jeg kunne bare ikke
se det på Microsoft hjemmeside.

Venlig hilsen

Mogens Hansen



Jonas Meyer Rasmusse~ (25-02-2002)
Kommentar
Fra : Jonas Meyer Rasmusse~


Dato : 25-02-02 16:12

"Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
news:a585ej$3n7$1@news.cybercity.dk...
>
> "Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
> news:a5853m$31l$1@news.cybercity.dk...
>
> > Visual C++ .NET ikke som en selvstændig pakke, men er del af Visual
Studio
> > .NET Professional 2002.
>
> hmm. jo den gør tilsyneladende, og den koster kr. 941. Jeg kunne bare ikke
> se det på Microsoft hjemmeside.

Er det korrekt at standard ikke optimerer koden?
Og er det så også korrekt, at den eneste metode til at få en kommerciel
version
af den optimerende er ved at hoste op med ca 9k?

mvh Jonas



Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408514
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste