我应该在这里使用什么格式说明符?

Chi*_*lzy 2 c types file char format-specifiers

在这里获取此代码来打印打开的文件的名称(如果您想知道,它是高度图),每次我尝试打印时都会收到格式警告,我应该使用哪种格式说明符?

    unsigned char* data = stbi_load("textures/height.png", &width, &height, &nr_components, 0);
    printf("Loaded file: %u\n", data);
Run Code Online (Sandbox Code Playgroud)

ybu*_*ill 11

如果您的目标是打印加载数据的地址,则为%p

printf("Loaded file: %p\n", (void*)data);
Run Code Online (Sandbox Code Playgroud)

如果您想逐字节打印实际数据,您应该循环遍历字节并使用%hhu(对于十进制)或%hhx(对于十六进制):

printf("Loaded file:\n");
for(int i = 0; i < width*height*nr_components; ++i)
    printf("%hhx ", data[i]);
printf("\n");
Run Code Online (Sandbox Code Playgroud)

data但不包含文件的名称,因此如果您只想打印名称,请打印您传递给的相同字符串stbi_load

const char *filename = "textures/height.png";
unsigned char* data = stbi_load(filename, &width, &height, &nr_components, 0);
printf("Loaded file: %s\n", filename);
Run Code Online (Sandbox Code Playgroud)