我有变量tmit:long tmit;
。我在这段代码中遇到错误:
printf("Time: %s",ctime(&tmit));
错误说:Cannot convert 'long int*' to 'const time_t* {aka const long long int*}' for argument '1' to 'char* ctime(const time_t*)'
我的问题是,如果我想看日期,如何将long转换为time_t而不会丢失任何有关时间的信息或如何更改此代码。我正在研究这个answer,但是我收到了错误。
答案 0 :(得分:5)
一般情况下,您不能在getProgress() Old - null
getProgress() New- 0
getProgress() Old - 0
getProgress() New- 24
getProgress() Old - 24
getProgress() New- 50
getProgress() Old - 50
getProgress() New- 82
getProgress() Old - 82
getProgress() New- 100
onComplete()
和std::time_t
之类的整数之间建立任何合理的连接。
在您的特定系统上,long
是std::time_t
,因此您可以这样做
long long
然后使用std::time_t temp = tmit;
的地址。请注意,这不需要在编译器或编译器版本之间移植(尽管我不希望后者破坏)。
值得检查temp
中保存的内容是否以合理的方式被tmit
等函数解释,因为您没有告诉我们它来自何处。
根据此ctime
的生成方式,最好在开始时使用tmit
代替std::time_t tmit
,从而完全消除此转换问题。< / p>
如果您不必使用旧的C风格时间设施,请查看C ++ 11 {{3}}标题。
答案 1 :(得分:3)
你不能简单地&#34;转换&#34;一种指向不兼容对象类型指针的指针。
你想要做的是创建另一种类型的对象,然后使用对象类型之间的impicit转换初始化它,最后将指针传递给新创建的对象:
public HttpResponseMessage Post([FromBody] JToken model)
{
DoStuff(model);
var myField = model["fieldName"];
return new HttpResponseMessage(HttpStatusCode.OK);
}