文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>数据类型 - 关于常量的前缀、后缀

数据类型 - 关于常量的前缀、后缀

时间:2010-08-08  来源:wangmanlivsli

本文来自草根编程网:http://www.caogenbiancheng.com/?action-viewnews-itemid-94

曾经对float num=3.14f; 这样的赋值非常疑惑,其实现在也不明白.

既然说明了是float类型,又何必在3.14后面挂个f呢?

书上说:

int num=100; 一个整数常量将默认为int类型(除非常数有后缀或超出了int的范围)

double num=3.14; 一个浮点数常量将默认为double类型

并要求:

long num=100L;

long long num=100LL;

unsigned long=100UL;

unsigned long long num=100ULL;

float num=3.14f;

这些后缀是大小写无关的、(U和L是)无顺序的; 我反复测试,看不出没有区别.

我觉得这些东西用于 #define 还说得过去,用于指定类型的变量有必要吗?

我猜唯一的必要性或许是让编译器少转换一次.

不过知道还是有好处,以免看不懂别人的代码.

总之,前人应该自有道理,希望谁知道能告诉我.

另外,如果是十六进制或八进制常数,将从int、unsigned、long、unsigned long中自动选择最小的类型.

其他情况:

#include 

#include 

int main(void)

{

  char c='a';

  char cs[] = "abc";

  wchar_t wc = L'A'; /* 这个 L 也可以省略 */

  wchar_t ws[] = L"ABC"; 

  int n1 = 65535;

  int n2 = 0xFFFF; /* 十六进制  */

  int n3 = 0Xffff; /* 大小写都行 */

  int n4 = 0177777; /* 八进制   */

  printf("%c,%s,%c,%Sn",c,cs,wc,ws);

  printf("%d,%d,%d,%dn",n1,n2,n3,n4);

  getchar();

  return 0;

}

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载