zoukankan      html  css  js  c++  java
  • C 常量的类型

    http://bbs.csdn.net/topics/380028485

    整型常量的类型是下列相应表中第一个能表示其值的类型:

    int --> long int --> long long int

    无后缀的十进制整数常量:int,long int,long long int
    以字母u或U为后缀的十进制整型常量:unsigned int,unsigned long int,unsigned long long int

    以字母l或L为后缀的十进制整型常量:long int,long long int
    同时以字母u或U和字母l或L为后缀的十进制整型常量:unsigned long int,unsigned long long int

    以字母ll或LL为后缀的十进制整型常量:long long int
    同时以字母u或U和字母ll或LL为后缀的十进制整型常量:unsigned long long int

    无后缀的八进制或十六进制常量:int,unsigned int,long int,unsigned long int,long long int,unsigned long long int
    以字母u或U为后缀的八进制或十六进制常量:unsigned int,unsigned long int,unsigned long long int
    以字母l或L为后缀的八进制或十六进制常量:long int,unsigned long int,long long int,unsigned long long int

    同时以字母u或U和字母l或L为后缀的八进制或十六进制常量:unsigned long int,unsigned long long int
    以字母ll或LL为后缀的八进制或十六进制常量:long long int,unsigned long long int

    同时以字母u或U和字母ll或LL为后缀的八进制或十六进制常量:unsigned long long int

    http://www.rapidtables.com/prog/cref/const.htm 

    Numbers characters and string constants.

    See enum end const in data types page.

    Data Type Constants

    SyntaxDescriptionExample

    0xhexnum

    0Xhexnum

    hexadecimal number int x=0x7FFF0000;

    0 octnum

    octal number int x=07654321;

    num u

    num U

    unsigned integer number constant unsigned int x=1000U;

    num l

    num L

    long integer number constant long x=-99999L;

    num ul

    num UL

    unsigned long integer number constant unsigned long x=99999L;

    num ll

    num LL

    long long  integer number constant long long x=-888888LL;

    num ull

    num ULL

    unsigned long long integer number constant unsigned long long x=100ULL;

    num f

    num F

    float number constant float x=0.005F;

    num l

    num L

    long double number constant long double x=0.005L;

    num exp

    num exp

    floating point exponent number constant double x=5.2E-3;

    'char'

    character constant char c='A';

    "string"

    string constant char name[6]="Hello";

    http://stackoverflow.com/questions/7036056/what-do-0ll-or-0x0ul-mean

    These are constants in C and C++.
    The suffix LL means the constant is of type long long, and UL means unsigned long.

    In general, each L or l represents a long and
    each U or u represents anunsigned. So, e.g.

    1uLL    // means the constant 1 with type unsigned long long.

    This also applies to floating point numbers:

    1.0f    // of type 'float'
    1.0     // of type 'double'
    1.0L    // of type 'long double'

    and strings and characters, but they are prefixes:

     'A'   // of type 'char'
    L'A'   // of type 'wchar_t'
    u'A'   // of type 'char16_t' (C++0x only)
    U'A'   // of type 'char32_t' (C++0x only)

    In C and C++ the integer constants are evaluated using their original type,
    which can cause bugs due to integer overflow:

    long long nanosec_wrong = 1000000000 * 600;
    // ^ you'll get '-1295421440' since the constants are of type 'int'
    //   which is usually only 32-bit long, not big enough to hold the result.
    
    long long nanosec_correct = 1000000000LL * 600
    // ^ you'll correctly get '600000000000' with this
    
    int secs = 600;
    long long nanosec_2 = 1000000000LL * secs;
    // ^ use the '1000000000LL' to ensure the multiplication is done as 'long long's.

    In Google Go, all integers are evaluated as big integers (no truncation happens),

    var nanosec_correct int64 = 1000000000 * 600

    and there is no "usual arithmetic promotion"

     var b int32 = 600
        var a int64 = 1000000000 * b
        // ^ cannot use 1000000000 * b (type int32) as type int64 in assignment

    so the suffixes are not necessary.

  • 相关阅读:
    jvm类加载机制
    线程误区-join,wait(里边还是调用的wait)
    线程间通信wait和notify【All】简介
    指令重排序
    window.opener
    scrollIntoView()
    保持饥饿,保持愚蠢
    执行sql语句,不依靠实体 获取string值
    join函数详解
    html常用代码大全
  • 原文地址:https://www.cnblogs.com/shangdawei/p/3150554.html
Copyright © 2011-2022 走看看