[previous] 0162 [next] [U] Unknown length modifier used with 'o' conversion specifier, number %s.
Explicitly undefined REFERENCE - ISO:C90-7.9.6.1 Formatted input/output functions

An unknown length modifier is being used in conjunction with a '%o' conversion specifier in a printf format string.

Valid length modifiers for a '%o' conversion specifier are "h" and "l" - indicating that the corresponding argument is of type unsigned short or unsigned long.

In the code example below "L" has been used; but "L" is only valid with %e, %f or %g.


/*PRQA S 185,336,602,1307,2017,3122,3200,3209,3227,3408,3602,3625 ++*/

#include <stdio.h>

extern void foo(unsigned int itot, unsigned short stot, unsigned long ltot)
{
    printf("The number in octal form is %o",  itot);  /* OK */
    printf("The number in octal form is %ho", stot);  /* OK */
    printf("The number in octal form is %lo", ltot);  /* OK */

    printf("The number in octal form is %Lo", itot);  /* Message 0162 - L flag is invalid */
}

QA·C Source Code Analyser 8.1.2
© 2013 Programming Research.
www.programmingresearch.com
Personality Groups | Glossary | Message Index Contents