如何从指针转换为整数?

时间:2019-01-27 01:25:39

标签: c++ c turtle-graphics

我试图从一个指针返回一个int,但不断收到错误消息“从指针投射到不同大小的整数”。代码部分在下面。我认为问题可能是var_num调用的函数全部无效,但理想情况下,如果我不更改所有函数(及其后续函数)就可以离开,这将容易得多。谢谢!

int var_num(Prog *ptr)
{
   if(!isdigit(ptr->words[ptr->current_line][0])) {
      ptr->current_var = ptr->vars[var_instruction(ptr)];
   }
   else {
      num_instruction(ptr);
   }

   return (int)ptr;
}

1 个答案:

答案 0 :(得分:0)

我假设Prog是某种structclass。在任何一种情况下,它都是比简单变量复杂得多的对象,将其转换为其他类型并不是直接的。至少编译器本身不能做到,因为它模棱两可。

问题是,例如,编译器可以将强制转换float转换为int,但是如果不明确定义如何将class Student转换为class Car,将无法完成。可行。

如果Prog包含您要返回的某种属性(在下面的示例中将称为attribute),这就是您需要做的:

return ptr->attribute;

如果该属性的类型不同于int,但类型为primitive,则可以像这样键入它。

return (int)ptr->attribute;