我还在学习C++中的类型转换,我现在正在这样做
long int t = time(NULL);
Run Code Online (Sandbox Code Playgroud)
我正在使用VS2013并注意到从'time_t'到'long'警告的转换,所以我想我会把它转换成看起来像;
long int t = static_cast<long int> time(NULL);
Run Code Online (Sandbox Code Playgroud)
然而,这仍然无法结合静态演员和C风格的演员表
long int t = static_cast<long int> (time(NULL));
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否有人可以帮助阐明这一点?
time(NULL)不是强制转换,而是返回的函数调用time_t.由于time_t类型不完全相同long int,您会看到警告.
此外,static_cast<T>(value)需要括号,这就是您的第一个版本不起作用的原因.