当我打印窗口句柄(X11简单窗口)的值时,它为零。有窗户吗?
我所拥有的是C程序中两个位置的以下日志。我需要确保这两扇窗户是一样的我打印了那里的id,结果是0。我怀疑这是同一个窗口还是根本没有创建窗口?
printf("\n窗口id是…%d",获胜);
结果为0。
问题-如果为X窗口打印的值为0。这是否意味着没有窗口。或者这是一个合适的身份证?
在回答后编辑---
1.将Window打印为int是可以的,而且以前也这样做过。像223021这样的值会在两个printf中打印出来。使用格式说明符%u也会产生相同的结果。
2.Win被宣布为Window Win;
在我的系统中,sizeof(Window)
产生8,而sizeof(int)
产生4。这可能就是为什么您的printf打印0:printf("%d", someWindow)
使用8个字节中的前4个,而只有最后一个可能很重要。
您必须将Window强制转换为已知类型,而不是
printf("%d", (int) win);
printf("%ld", (long) win);
你使用的类型可能越大越好。事实上,我甚至不确定Window
是否必须实现为算术类型。