当前位置:天才代写 > tutorial > C语言/C++ 教程 > 学点C语言(16):数据范例 – 关于常量的前缀、后缀

学点C语言(16):数据范例 – 关于常量的前缀、后缀

2017-11-03 08:00 星期五 所属: C语言/C++ 教程 浏览:454

曾经对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 <stdio.h>
#include <stddef.h>

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,%S\n",c,cs,wc,ws);
  printf("%d,%d,%d,%d\n",n1,n2,n3,n4);

  getchar();
  return 0;
}

返回“学点C语言 – 目次”

 

    关键字:

天才代写-代写联系方式