收到警告“从不同大小的整数转换为指针”从下面的代码
代码是:
Push(size, (POINTER)(GetCar(i) == term_Null()? 0 : 1));
这里是 C 代码推送
返回 ABC
这是
typedef POINTER *ABC
typedef void * POINTER
ABC size;
Push(ABC,POINTER);
XYZ GetCar(int);
typedef struct xyz *XYZ;
XYZ term_Null();
long int i;
特定警告的原因是什么?
The code is:
Push(size, (POINTER)(GetCar(i) == term_Null()? 0 : 1));
Here is the C code push
returns ABC
which is
typedef POINTER *ABC
typedef void * POINTER
ABC size;
Push(ABC,POINTER);
XYZ GetCar(int);
typedef struct xyz *XYZ;
XYZ term_Null();
long int i;
What is the reason for the particular warning?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(4)
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
您可以使用
intptr_t
来确保整数与指针具有相同的宽度。这样,您不需要发现有关您的特定平台的信息,并且它也可以在另一个平台上工作(与unsigned long
解决方案不同)。摘自 C99 标准:
You can use
intptr_t
to ensure the integer has the same width as pointer. This way, you don't need to discover stuff about your specific platform, and it will work on another platform too (unlike theunsigned long
solution).Taken from the C99 Standard: