标签: promotions

当float不能表示所有int值时,为什么C++将int提升为float?

说我有以下内容:

int i = 23;
float f = 3.14;
if (i == f) // do something
Run Code Online (Sandbox Code Playgroud)

i将被提升为a float并将两个float数字进行比较,但是可以float代表所有int值吗?为什么不提倡既intfloat一个double

c++ int promotions types floating-point-conversion

67
推荐指数
6
解决办法
8136
查看次数

如何从Jenkins的另一个工作中提升特定的内部版本号?

我安装了Promoted Build PluginJenkins现在开始,现在我面临一些麻烦,以促进现有工作的构建.这是场景:

  1. Nightly Build每天晚上都有一个现有的工作,运行所需的所有测试和指标;

  2. 现有Deploy Build一个接受参数$ {BUILD_NUMBER}并从中部署具有相应$ {BUILD_NUMBER}的构建Nightly Build

    • 假设[夜间构建]运行并成功构建了工件#39
    • 现在我可以在#39中作为参数运行[Deploy Build]
      • 来自[Nightly Build]#39的​​工件将被部署

到现在为止还挺好.现在是我要添加的部分Build Promotions......

这正是我需要实现的目标

有没有办法推广Nightly Build #39(注意它之前已经建成)Deploy Build?或者甚至可能来自其他地方,坦率地说,我有点迷失在这里:(

我没有看到它们具有清晰的上游/下游关系,因为它们没有:始终运行此构建,然后在执行期间运行另一个 - [部署构建]有时仅执行,而不是总是在[夜间]之后执行建立].

promotions build jenkins

62
推荐指数
1
解决办法
6万
查看次数

printf的h和hh修饰符的用途是什么?

除了%hn%hhn(指定hhh指定指向对象的大小),格式说明符的hhh修饰符有printf什么意义?

由于标准要求的默认促销适用于可变函数,因此不可能将类型charshort(或其任何有符号/无符号变体)的参数传递给printf.

根据7.19.6.1(7),h修饰符:

指定以下d,i,o,u,x或X转换规范适用于short int或unsigned short int参数(该参数将根据整数提升进行提升,但其值应转换为short int或打印前的unsigned short int); 或者后续的n转换规范适用于指向short int参数的指针.

如果参数实际上是类型shortunsigned short,则促销int后转换回shortunsigned short将产生与促销相同的int而不进行任何转换.因此,对于类型的参数shortunsigned short,%d,%u等应给予相同的结果到%hd,%hu等.(并且同样地对于char类型和hh).

据我所知,h或者hh修饰符可能有用的唯一情况是当参数将其传递int到范围之外时,short或者unsigned short …

c printf promotions variadic-functions format-specifiers

55
推荐指数
3
解决办法
3万
查看次数

C函数调用中的默认参数提升

建立

在C语言中调用函数时,我有一些关于默认参数提升的问题.这里是6.5.2.2节"函数调用" C99标准(pdf)中的第6,7和8段(强调添加并分为列表以便于读):

第6段

  1. 如果表示被调用函数的表达式具有不包含原型的类型,对每个参数执行整数提升,并将具有类型的参数float提升为double.这些被称为默认参数促销.
  2. 如果参数数量不等于参数数量,则行为未定义.
  3. 如果使用包含原型的类型定义函数,并且原型以省略号(, ...)结尾或者促销后的参数类型与参数类型不兼容,则行为未定义.
  4. 如果使用不包含原型的类型定义函数,并且促销后的参数类型与促销后的参数类型不兼容,则行为未定义,但以下情况除外:
    • 一个提升类型是有符号整数类型,另一个提升类型是相应的无符号整数类型,并且该值可在两种类型中表示;
    • 这两种类型都是指向字符类型的限定或非限定版本的指针void.

第7段

  1. 如果表示被调用函数的表达式具有包含原型的类型,则将参数隐式转换为相应参数的类型,就像通过赋值一样,将每个参数的类型作为其声明的非限定版本类型.
  2. 函数原型声明符中的省略号表示法导致参数类型转换在最后声明的参数之后停止.默认参数提升是在尾随参数上执行的.

第8段

  1. 没有其他转换是隐式执行的; 特别是,参数的数量和类型不会与函数定义中不包含函数原型声明符的参数的数量和类型进行比较.

我知道的

  • 默认参数提升charshortint/ unsigned intfloatdouble
  • 变量函数(如printf)的可选参数受默认参数提升的约束

为了记录,我对函数原型的理解是这样的:

void func(int a, char b, float c);  // Function prototype
void func(int a, char b, float c) …
Run Code Online (Sandbox Code Playgroud)

c promotions prototype function

30
推荐指数
3
解决办法
1万
查看次数

Java为什么将long(64)转换为float(32)被视为加宽?

正如它从oracle说的那样

Oracle Docs的参考资料

扩展原始转换19对基本类型的特定转换称为扩展原语转换:

  1. byte to short,int,long,float或double
  2. 短,int,long,float或double
  3. char到int,long,float或double
  4. int到long,float或double
  5. 长期漂浮或加倍
  6. 漂浮加倍

如果一个浮点数有32位而一个长数据有64位,那怎么算是加宽?这不应该被视为缩小范围吗?

java promotions

12
推荐指数
2
解决办法
3243
查看次数

解决方法是缺少应用内购买的促销代码

Apple不提供应用内购买的促销代码.在遵守Apple的开发者指南的同时,让用户免费试用应用内购买解锁功能或内容的最佳方式是什么?

这个想法是允许一组特殊的用户(评论者,关键粉丝等)访问作为应用内购买提供的内容或功能而无需付费.

非常感谢解决此限制的应用程序示例.

iphone promotions in-app-purchase

11
推荐指数
1
解决办法
8188
查看次数

在AdMob推广中放入DisplayUrl的内容是什么?

我知道这听起来很愚蠢.我正在尝试使用AdMob宣传我的应用.在那里的促销形式,我把

 URL: market://details?id=com.xxxx.xxxxxx.xxxxx
 DisplayUrl: ????
Run Code Online (Sandbox Code Playgroud)

无论我为DisplayUrl输入什么,系统都会给我无效的格式错误.

我已阅读指南http://helpcenter.admob.com/content/content-guidelines#displayURL但它根本没有帮助.有人能帮我吗?

更新:我厌倦了Text&Tile这个选项,并使用图像选项,我可以上传我自己的图像并完成它.这么多1美分/点击已保存.

android promotions admob

11
推荐指数
1
解决办法
2722
查看次数

不,真的,浮点数促销何时实际发生?

从另一个问题中,他们谈到了Bjarne Stroustrup如何说,就像整数数据类型比int(例如short)被提升为a一样int,floats被提升为a double.然而,与扩展的扩展不同于扩展int,浮点升级不会以相同的方式发生,而是发生在其他地方.

我知道如果你要计算float + double,float那么在应用double二元运算符(+)之前将转换为a .但是,根据Learncpp.com,这不是浮点促销.这是通常的算术转换.

浮点数促销何时实际发生?

c++ floating-point promotions

9
推荐指数
2
解决办法
660
查看次数

在C中打印浮点数,同时避免可变参数提升加倍

如何在C中打印(即stdout)一个浮点数,不是在传递给printf时将其提升为double

这里的问题是C中的可变参数函数将所有float参数提升为double,这会导致两次不必要的转换.例如,如果在GCC中打开-Wdouble-promotion并进行编译

float f = 0.f;
printf("%f", f);
Run Code Online (Sandbox Code Playgroud)

你会得到

warning: implicit conversion from 'float' to 'double' when passing argument to function
Run Code Online (Sandbox Code Playgroud)

我使用相对较少的处理能力(72MHz ARM Cortex-M3),我肯定是浮点数据的ASCII输出的瓶颈.由于架构缺乏硬件FPU,因此必须在单精度和双精度之间进行转换并不重要.

有没有办法在直线C中更有效地打印浮子?

c floating-point printf promotions

8
推荐指数
2
解决办法
6553
查看次数

如何查明应用内购买的促销代码是否已兑换?

我已经从 Google Play 管理中心的促销部分生成了 100 个用于应用内购买的代码,并开始与一些新用户共享。

然而,Play 管理中心仅提到 100 个促销代码中有 10 个已被兑换,但没有透露这 10 个促销代码是哪 10 个。我想知道,以便我可以跟进那些尚未兑换的用户。

当我通过计费库获取活动购买的商品时,我什至查看了应用程序内收到的购买数据。这是它包含的以下数据 -

{"packageName":"com.app","productId":"product_sku","purchaseTime":1579983348800,"purchaseState":0,"purchaseToken":"1234___abcd"}
Run Code Online (Sandbox Code Playgroud)

这里也没有促销代码。

那么,如何查明特定促销代码是否已兑换?

android promotions google-play google-play-console

7
推荐指数
1
解决办法
1191
查看次数