我正在查看项目中的代码,该项目包含指向SDL库中结构的指针:
Struct SDL_Window * screen = 1;
我认为这意味着屏幕是指向SDL结构的指针。如何为指针分配整数值?这是代码中的错误吗?
答案 0 :(得分:2)
有时人们会将指针重载为其他内容,例如错误或状态代码。
这可能是不好的做法,特别是如果没有记录使用它的地方。该行为与实现有关,因此只有在确保C实现根据需要处理转换后的值时才应使用它。
答案 1 :(得分:1)
在许多架构中,指针和整数使用相同的位数存储。因此,在C中为指针赋值是合法的。然而,好的做法是一个非常不同的问题!在gcc 4.8上你会收到警告:
bla.c:2:18: warning: initialization makes pointer from integer without a cast [enabled by default]
struct toto *t = 1;