跳过导航链接 | |
退出打印视图 | |
Oracle Solaris Studio 12.3:C 用户指南 Oracle Solaris Studio 12.3 Information Library (简体中文) |
2.11.3 does_not_read_global_data
2.11.5 does_not_write_global_data
2.11.26 warn_missing_parameter_info
2.14.5 __FUNCTION__ 和 __PRETTY_FUNCTION__
2.18 对 Intel MMX 和扩展的 x86 平台内部函数的编译器支持
使用 -xc99=none 进行编译时,Oracle Solaris Studio C 编译器包含数据类型 long long 和 unsigned long long,它们与数据类型 long 类似。long long 数据类型存储 64 位信息;long 使用 -m32 编译时存储 32 信息。long 数据类型使用 -m64 编译时存储 64 位信息。long long 在 -Xc 模式下不可用(发出警告)。
要输出或扫描 long long 数据类型,请在转换说明符前面加字母 ll。例如,要以带符号十进制格式输出 llvar(long long 数据类型的变量),请使用:
printf("%lld\n", llvar);
某些二元运算符对其操作数的类型进行转换以便两个操作数具有相同的类型,该类型也是结果的类型。这些运算符为常见算术转换:
如果两个操作数中的任何一个的类型为 long double,则另一个操作数转换成类型 long double。
否则,如果两个操作数中的任何一个的类型为 double,则另一个操作数转换成类型 double。
否则,如果两个操作数中的任何一个的类型为 float,则另一个操作数转换成类型 float。
否则,对两个操作数执行整型提升。然后,应用以下规则:
如果两个操作数中的任何一个的类型为 unsigned long long int,则另一个操作数转换成类型 unsigned long long int。
如果两个操作数中的任何一个的类型为 long long int,则另一个操作数转换成类型 long long int。
如果两个操作数中的任何一个的类型为 unsigned long int,则另一个操作数转换成类型 unsigned long int。
否则,仅在 64 位 SPARC (-m64) 上进行编译并指定了 cc -xc99=none 时,如果一个操作数的类型为 long int,而另一个操作数的类型为 unsigned int,则两个操作数的类型均转换为 unsigned long int。
否则,如果两个操作数中的任何一个的类型为 long int,则另一个操作数转换为类型 long int。
否则,如果两个操作数中的任何一个的类型为 unsigned int,则另一个操作数转换为类型 unsigned int。