我正在编写一些代码来获取 c 中堆栈的十六进制转储。当我在 ubuntu 中使用 gcc 编译它时,我在以下行中不断收到编译错误,但是它在 windows 中的 gcc 下编译得很好。
char buffer[10];
for (int i=0;i<20;i++)
printf("0x%lx => 0x%lx\n", &(buffer[i]), ((long *)buffer)[i]);
这是编译器给出的信息。
警告:格式“%lx”需要类型“long unsigned int”,但参数 2 的类型为“char *”</p>
如果我做错了什么,有人可以告诉我吗?