[c++ ] giFToxic compileer-probleem *

Pagina: 1
Acties:

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 18-08 10:58

Bergen

Spellingscontroleur

Topicstarter
Ik probeer giFToxic te compileren maar hij houdt het halverwege voor gezien met de volgende melding:
utils.c: In function `number_human':
utils.c:378: parse error before `mod'
utils.c:380: `mod' undeclared (first use in this function)
utils.c:380: (Each undeclared identifier is reported only once
utils.c:380: for each function it appears in.)
utils.c:381: `nice' undeclared (first use in this function)
De functie die de fout veroorzaakt:
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
gchar *number_human(gulong size)
{
        gchar format[100];
        gchar *qtys[3][2]={
                {" ", " "},
                {N_(" thousand"), N_(" thousand ")},
                {N_(" million"), N_(" million ")}};
                                                                                
        gulong divisor = 1;
        gint type = 0;
                                                                                
        if (size >= 1000000){
                divisor = 1000000;
                type = 2;
        } else if (size >= 1000){
                divisor = 1000;
                type = 1;
        }
                                                                                
        gulong mod = size % divisor;
        gulong nice = size / divisor;
        strcpy(format, (mod == 0)?"%.0f":"%.2f");
        strcat(format, (nice == 1 && mod == 0?gettext(qtys[type][0]):gettext(qtys[type][1])));
        return g_strdup_printf(format, (gfloat) size / divisor);
}

De compiler vindt dus dat het bij regel 378 fout gaat. Dat is in bovenstaande code regel 20. Ik kan de fout daar niet echt vinden, die regel ziet er normaal uit toch? (en de rest van de functie ook imo.) Is dit een bug in de compiler ofzo? :?

Ik draai Debian (Woody) en de gcc versie is 2.95.4. giFToxic komt uit de CVS-tree.

[ Voor 11% gewijzigd door Bergen op 15-10-2003 05:35 ]


  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Het enige wat ik kan verzinnen is dat je dit kan proberen :
C:
1
2
3
gulong mod,nice;
mod = size % divisor;
nice = size / divisor;

Maargoed, aangezien ze dit veel beter in P&W zullen weten, gooi ik hem daar even heen :)

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Utils.c wordt door de extensie 'c' als C gecompileerd en niet als C++. In C mag je in tegenstelling tot C++ niet overal variabelen declareren en alleen aan het begin van de functie.

Je moet die declaratie van 'mod' dus aan het begin v/d functie plaatsen.

Professionele website nodig?


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Of als C++ compileren :)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 18-08 10:58

Bergen

Spellingscontroleur

Topicstarter
Yay, dan compileert ie inderdaad goed! :) Danku!