|
| %d ? Fra : Ukendt |
Dato : 12-03-02 19:21 |
|
Hej hej!
Jeg fandt følgende kode, men jeg kan ikke helt forstå hvad %d'et betyder..
Hvordan kan det være, at det er et d?
---
unsigned char *p, tal=5;
p = &tal;
*p = 8;
printf(" tal = %d \n",tal);
---
| |
holst (12-03-2002)
| Kommentar Fra : holst |
Dato : 12-03-02 19:37 |
|
"König" <knep> wrote in message
news:3c8e4705$0$249$edfadb0f@dspool01.news.tele.dk...
> Hej hej!
> Jeg fandt følgende kode, men jeg kan ikke helt forstå hvad %d'et betyder..
> Hvordan kan det være, at det er et d?
>
> ---
> unsigned char *p, tal=5;
> p = &tal;
> *p = 8;
> printf(" tal = %d \n",tal);
> ---
Hej
%d betyder at den variabel der skal sættes ind på %d's plads skal være en
decimal integer. I dette tilfælde er det variablen "tal", der indsættes.
Der er andre i samme boldgade...
%c = character
%f = floating point number
osv.
Håber det hjalp lidt...
mvh, Allan Eriksen
| |
Byrial Jensen (12-03-2002)
| Kommentar Fra : Byrial Jensen |
Dato : 12-03-02 20:30 |
|
König <> skrev:
> Hej hej!
> Jeg fandt følgende kode, men jeg kan ikke helt forstå hvad %d'et betyder..
> Hvordan kan det være, at det er et d?
>
> unsigned char *p, tal=5;
> p = &tal;
> *p = 8;
> printf(" tal = %d \n",tal);
Det er et %d fordi det andet argument i funktionskaldet konverteres
fra være en "unsigned char" til en "int". Fænomenet kaldes "integral
promotion" og sker når der ikke er nogen prototype til at fortælle
den forventede type af et funktionsargument. (Hvis der ikke er en,
eller, som her, hvis funktionen tager et varierende antal argumenter
hvis typer ikke kan erklæres).
| |
Bertel Lund Hansen (12-03-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 12-03-02 23:14 |
|
König skrev:
>Jeg fandt følgende kode, men jeg kan ikke helt forstå hvad %d'et betyder.
Jeg bruger "%i" i stedet for. Den gør nøjagtig det samme, og jeg
er vant til betegnelsen integer. D'et står for noget med
"decimal" - altså i betydningen "titalssystemet".
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Richard Flamsholt (13-03-2002)
| Kommentar Fra : Richard Flamsholt |
Dato : 13-03-02 00:27 |
|
Bertel Lund Hansen <nospam@lundhansen.dk> skrev:
>Jeg bruger "%i" i stedet for. Den gør nøjagtig det samme, og jeg
>er vant til betegnelsen integer.
I praksis bruger alle %d og ingen %i. Sådan er konventionen. Rigtig
mange programmører kender endda kun %d og aner slet ikke, at der også
findes en %i.
Derfor er det en god ide selv at bruge %d fremfor %i. Dels gør det ens
egen kode lettere at læse for flertallet af C-programmører og dels får
man selv lidt lettere ved at læse andres kode. At følge konventionerne
er en God Ting.
--
Richard Flamsholt
richard@flamsholt.dk - www.richard.flamsholt.dk
| |
Bertel Lund Hansen (13-03-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 13-03-02 07:08 |
|
Richard Flamsholt skrev:
>I praksis bruger alle %d
Øv.
>At følge konventionerne er en God Ting.
Absolut. I mit storsind vil jeg skam også tillade alle at følge
min konvention.
(Dit svar er i øvrigt taget til efterretning)
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Klaus Hebsgaard (15-03-2002)
| Kommentar Fra : Klaus Hebsgaard |
Dato : 15-03-02 12:15 |
| | |
|
|