sscanf %n und size_t

06/03/2010 - 15:06 von Marcel Müller | Report spam
Hallo,

was ist eigentlich der Datentyp bei %n im scanf String? Respektive kann
man den beeinflussen?

Ich meine von der Sache her würde ich gerne size_t nehmen. Da meckert
mir gcc aber immer mit "warning: int format, size_t arg (arg 4)" herum.
Natürlich geht es trotzdem, weil auf den Platformen, wo ich unterwegs
bin, das sowieso keinen Unterschied macht. Aber ein vorzeichenbehafteter
Typ ergibt bei %n doch überhaupt keinen Sinn, oder?


Marcel
 

Lesen sie die antworten

#1 Thomas Koller
06/03/2010 - 15:19 | Warnen spam
Marcel Müller wrote:
was ist eigentlich der Datentyp bei %n im scanf String?



int

Respektive kann man den beeinflussen?



Ja, durch length modifier.

Ich meine von der Sache her würde ich gerne size_t nehmen. Da meckert
mir gcc aber immer mit "warning: int format, size_t arg (arg 4)" herum.



Dann nimm %zn

Natürlich geht es trotzdem, weil auf den Platformen, wo ich unterwegs
bin, das sowieso keinen Unterschied macht. Aber ein vorzeichenbehafteter
Typ ergibt bei %n doch überhaupt keinen Sinn, oder?



Das Problem ist weniger, dass du bei %n wegen dem Vorzeichen Probleme
bekommst, sondern dass dein size_t eine ganz andere Grösse haben kann
als ein int, und daher bei size_t ohne den z modifier eine Warnung
durchaus sehr sinnvoll ist.

Tom

Ähnliche fragen