我想知道是否可以使用 C 预处理定义来更改字符串格式说明符。我已经尝试编写以下内容,但似乎遇到了编译器错误。它只是试图用正确的格式说明符替换现有的格式说明符。
#include <stdio.h>
//This is the problem line....
#define %d %llu
int main(int argc, char** argv){
unsigned long long int myInt = 0;
printf("myInt start value: %d", myInt++);
printf("myInt value=%d (that got incremented)", myInt++);
printf("myInt value: %d; wow, another post-increment", myInt++);
printf("myInt final value %d", myInt);
return 0;
}
我收到以下编译器错误:
error: expected an identifier
#define %d %llu
^
为什么这种语法不可接受?甚至有可能实现吗?