There is such code:
#include
int main() {
float d = 1.0;
int i = 2;
printf(\"%d %d\", d, i);
getchar();
return 0;
}
You need to know how printf works. The caller puts all the arguments on the stack. As it parses through the fmt string, the first time it sees a %d it picks the first 4-byte word on the stack and prints it as an integer. The second time it sees a %d, it picks the next 4-byte word. What you're seeing is the raw float bytes being displayed as two integers.