C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 为什么常量的类型修饰符?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我无法理解文字常量的类型修饰符的用途是什么,比如数值常量:

75 
75u     
75l  
75ul
75lu

在什么情况下这可能有用?我的意思是如果你已经为变量类型声明了一个类型修饰符,我认为没有必要这样做.如果有人能帮助我理解这一点,那就太棒了!谢谢!

奖金问题:“文字”是否与“常数”相同,你可以只说“文字”而不是“文字常量”吗?

解决方法

对于整数文字,除了Bathsheba的答案之外,它还用于各种情况,如抑制警告

unsigned int n = somevalue;
...
if (n > 5) dosomething();

改为if(n> 5U)并且不再有警告.

或者当你做这样的事情

long long x = 1 << 50;

并意识到x不是你所期望的,你需要改变它

long long x = 1LL << 50;

另一种用法是C 11中的auto关键字

auto a = 1;
auto b = 1U;
auto c = 1L;
auto d = 1UL;

以上将导致变量的不同类型

对于浮点文字,使用后缀将导致更正确的结果

long double a = 0.01234567890123456789;
long double a = 0.01234567890123456789L;

那些may result in very very different values.那是因为没有后缀的文字是双字面值并且将被正确舍入到双倍,因此当long double具有比double更高的精度时,它将导致精度损失.由于double-rounding浮点数会发生同样的情况(首先是双倍然后浮动,而不是直接围绕文字浮动)

if (0.67 == 0.67f)
   std::cout << "Equal";
else 
   std::cout << "Not Equal";

The above will print out “Not Equal”

What is the difference between casting to float and adding f as a suffix when initializing a float?

大佬总结

以上是大佬教程为你收集整理的c – 为什么常量的类型修饰符?全部内容,希望文章能够帮你解决c – 为什么常量的类型修饰符?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:常量