给定整数值的结构指针

时间:2014-01-31 19:49:38

标签: c sdl

我正在查看项目中的代码,该项目包含指向SDL库中结构的指针:

Struct SDL_Window * screen = 1;

我认为这意味着屏幕是指向SDL结构的指针。如何为指针分配整数值?这是代码中的错误吗?

2 个答案:

答案 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;