如果我用一个整数#define,什么data type是它认为是sprintf()在C99?
#define NUMBER 100
sprintf(buf, "%i\n", NUMBER); // is it %i, %u, %lu ?
Run Code Online (Sandbox Code Playgroud)
#define NUMBER1 100 /* int: use "%d" or "%i" in printf() */
#define NUMBER2 100U /* unsigned int: use "%u" in printf() */
#define NUMBER3 100L /* long int: use "%ld" or "%li" in printf() */
#define NUMBER4 100UL /* unsigned long int: use "%lu" in printf() */
/* C99 */
#define NUMBER5 100LL /* long long int: use "%lld" or "%lli" in printf() */
#define NUMBER6 100ULL /* unsigned long long int: use "%llu" in printf() */
Run Code Online (Sandbox Code Playgroud)
注意:U和L也可以是小写注释
2:U可以在L或LL之前或之后