Nochmal gegenübergestellt.
uint16_t = 0x12AB; --- Mit dem Prefix "0x" wird eine hexadezimale Zahl
eingeleitet. Die zulässigen Ziffern sind:
0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f.
Das 'f' ist damit kein Suffix sondern eine Ziffer, auch wenn es ganz
rechts steht.
Um diesen Fall handelt es sich in Deinem Eröffnungspost.
"Formatzeichen" hingegen sind die Zeichen die in einem printf oder scanf
- "Formatstring" stehen, um anzugeben wie eine Zeichenfolge
interpretiert werden soll.
und
uint16_t = 1234; --- Ohne jeden Prefix wird eine dezimale Zahl
gekennzeichnet. Die zulässigen Ziffern sind: 0,1,2,3,4,5,6,7,8,9.
Hingegen ist:
float a = 30.0f; -- Ohne Prefix, wieder Dezimal mit den erwähnten
Ziffern und einem zusätzlichen Punkt. Das 'f' ist keine Ziffer, sondern
ein Suffix, der angibt, dass der Compiler die Zahl nicht als double
sondern als float zu interpretieren hat.