Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Ein paar Syntax-Fragen zu C/C++

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
27.04.2004, 14:35 Uhr
~Anfänger
Gast


Hallöchen, hätte da ein paar Syntax-Fragen zu C/C++:
Zum einen habe ich folgendes gefunden:

C++:
void CAboutDlg:: OnRomtest()
{
}


-> heißen die Doppelpunkte jetzt, dass OnROMtest() eine Funktion der Klasse CAboutDlg ist????
Außerdem noch:

C++:
#define UINT32 unsigned long
.....

if (diagnosis=RomTest((UINT32*) val, anz, fp))==0)
{
   sprintf(textfeld, "ok");
}


Ich habe ein wenig Probleme mit dem Sternchen *...Ist ((UINT32*) val jetzt ein Pointer vom Typ UINT auf die Variable val?

Zuguterletzt noch ein Programmstück:

C++:
if(fp)
    {
        fprintf(fp,
        "RAM-Test for board %d at address 0x%.08x (0x%.08x)  with range %d ",
        mod_nr+1, FCI_addr, val, anz*4);
        if(diagnose)
        {
            fprintf(fp, "failed.\n");
        } else
        {
            fprintf(fp, "done.\n");
        }
    }


Was macht hier dieses "0x%.08x (0x%.08x)"? So etwas habe ich noch nie gesehen? Ach ja:
mod_nr ist ist short
FCI_addr ist ein Pointer auf ein char (char*FCI_addr
val ist ein unsigned long
und
anz ist ein short

Hoffentlich ist der Code nicht zu wirr, und ihr versteht meine Fragen überhaupt...
Danke im voraus!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.04.2004, 14:50 Uhr
stephanw
localhorst


1.) ja !
2.) ((UINT32*) val castet die Variable val auf (Pointer auf UINT32), da die Funktion das wahrscheinlich so erwartet
3.) das sind die Formatierungen für printf, am besten Manual oder ein Buch oder google befragen. Die % usw. geben an, wie die Argumente ausgegeben werden sollen.
--
Reden ist Schweigen und Silber ist Gold.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.04.2004, 17:28 Uhr
Pablo
Supertux
(Operator)


Das ist nicht ANSI, sondern MFC -->
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.04.2004, 18:18 Uhr
stephanw
localhorst



Zitat:
Das ist nicht ANSI, sondern MFC

Wieso, nur weil die Klasse CAboutDlg heißt ??? Das ist doch nicht verboten, oder ?
--
Reden ist Schweigen und Silber ist Gold.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
27.04.2004, 23:17 Uhr
(un)wissender
Niveauwart


Eben, das hatten wir schonmal, das Verschieben ist nicht gerechtfertigt, die Fragen waren eindeutig und ausschließlich auf ANSI C++ bzw. C bezogen.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
28.04.2004, 13:02 Uhr
ao

(Operator)


... und wieder zurück.



ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
28.04.2004, 14:10 Uhr
~Anfänger
Gast


Hi, wusste erst selbst nicht so genau, in welches Forum das gehört, hab mich dann aber für C/C++ entschieden
Das ist wohl eher eine MFC-Funktion, aber egal:

C++:
void CAboutDlg:: OnRomtest()  


Das

C++:
0x%.08x


heißt übrigens:
eine Hex-Zahl, wovon max. 8 Stellen ausgegeben werden
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
28.04.2004, 15:28 Uhr
RHBaum




Zitat:

eine Hex-Zahl, wovon max. 8 Stellen ausgegeben werden


Noe !!!!

%[width].[precision][Type]

width = not defined in deinem Fall .... also 0 :-)
precision = 8
Type = x (achtung klein)

bedeuted:
x -> Hexadezimale Zahl, Buchstaben werden klein geschrieben !!!
width(bei x) -> Reservierte Platzhalter, 0 -> also die eigefuegte Zeichenkette fuer die Zahl ist genau so gross wie die geneirierte Zeichenfolgenkette fuer die Zahl selber, ergo keine Leerzeichen eingefuegt !
precision(bei x) -> Mindeststellen bei der Zahl fuer die generation der Zeichenkette. Auffuellen mit 0. 8 = deine Hexadezimale Zahl ist immer mindestens 8 Stellig. Fehlende Stellen werden mit 0 aufgefuellt. Kann aber auch mehr Stellen sein !!!

Precision = Genauigkeit nur bei Flieskommazahlen (Type e E f g) !!!

Ciao ...

Dieser Post wurde am 28.04.2004 um 15:30 Uhr von RHBaum editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: