Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » GCC Warning: Value computed not used

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
01.05.2008, 13:04 Uhr
tomhet



Hallo an alle

Ich programmiere ein authentifikationsmodul für PAM auf Linux. Folgender code iteriert durch in verzeichnis (**namelist), und kopiert strings nach gewissen kriterien. der code funktioniert wunderbar, gcc jedoch meint bei aktiviertem -Wall:

Code:
src/libpamauth.c:294: warning: value computed is not used



Line :294 entspricht genau dem header der for-schleife, kann mir aber nicht zusammenreimen welchen berechneten wert der compiler hier nicht benötigen würde. hatte schon mal wer solch einen fehler?


C++:
/* Iterate all links in udev_path_to_usb_byid (normally /dev/disk/by-id/) */
for ( i=0, list = namelist; i < num_entries; i++, *list++ ) {
    /* if we look at an USB device ... */
    if ( strncmp( (*list)->d_name, "usb-", 4) == 0 ) {
        /* it it's the device we need, copy to dest, free and return */
        if ( strstr( (*list)->d_name, byid_dev_cmpstring) != NULL ) {
            sprintf ( byid_dev_cmpstring, "%s/%s", wd, (*list)->d_name );
            strncpy0( dest, byid_dev_cmpstring, max_len );
            written++;
            free(*list);
            break;
        }
    }
    free (*list);
}
free(namelist);



Danke im Voraus
--
/* no comment */
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
01.05.2008, 13:19 Uhr
0xdeadbeef
Gott
(Operator)


Ich vermute, es geht dabei um

C++:
for ( i=0, list = namelist; i < num_entries; i++, *list++ )


*list++ ist das selbe wie *(list++), dementsprechend könntest du hier genau so gut

C++:
for ( i=0, list = namelist; i < num_entries; i++, list++ )


schreiben. Im Übrigen ist es eine gute Angewohnheit, in solchen Situationen (wo es keinen logischen Unterschied macht) Prä- statt Postinkrement zu benutzen, also

C++:
for ( i=0, list = namelist; i < num_entries; ++i, ++list )


der Hintergrund ist, dass, wenn du später mal C++-Code schreibst und mit operatorüberladenen Variablen arbeitest - zum Beispiel Iteratoren - Präinkrement in aller Regel weniger rechenaufwändig ist als Postinkrement, weil der Postinkrement-Operator eine Kopie erstellen und zurückgeben muss.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
01.05.2008, 13:36 Uhr
tomhet



Aaah..
Perfekt, danke vielmals!
--
/* no comment */
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


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: