narrowing conversion:在编程中指把一个取值范围更宽或精度更高的类型转换为取值范围更窄或精度更低的类型,从而可能导致数据丢失、精度丢失或溢出。常见于把 double 转为 int,或把较大的整数类型转为较小的整数类型(如 long → int)。在 C++(尤其是列表初始化 {})语境里,这类转换往往会被禁止或警告。
/ˈnæroʊɪŋ kənˈvɝːʒən/
The compiler warns about narrowing conversion.
编译器会对缩窄转换发出警告。
Using braces prevents accidental narrowing conversion when initializing a variable from a floating-point value.
使用花括号初始化可以防止把浮点数赋给变量时发生意外的缩窄转换。
narrowing 来自 narrow(变窄、缩小)加上现在分词后缀 -ing,强调“范围变小”的过程;conversion 源自拉丁语 conversio,表示“转换、转变”。合在一起用于计算机语境,形象地表达“把更宽的数值范围/更高精度转换到更窄范围/更低精度”。