当函数的声明为传统风格时,为什么输出不正确?

时间:2019-10-03 05:36:29

标签: c stdout header-files object-code

我已经用C中的传统声明方式声明了函数 <TouchableOpacity disabled={disabled || disabledNoLoading} style={[styles.buttonView, { backgroundColor: disabled || disabledNoLoading ? disabledColor : backgroundColor, width: buttonWidth, marginTop, borderColor }]} onPress={() => {Alert.alert('Pressed')}} > { disabled ? (<Text>Loading...</Text>) : (<Text style={[styles.buttonText, {color: textColor}]}>{text}</Text>) } </TouchableOpacity> 。但是,函数的输出不正确。我不需要在此处包括math.h,因为我正在声明该函数,并且该函数的目标代码已经存在。这是我的代码:

pow

上面的输出是1,应该是8。请帮助我。

1 个答案:

答案 0 :(得分:4)

  

传统声明无效,为什么?

由于没有原型,因此您提供的这两个int不会转换为pow实际接受的双精度数。使用“传统”声明,您必须努力确保准确地提供了函数期望的参数类型,否则程序中将出现未定义的行为。

这是偏爱原型并真正使用为标准功能提供原型的标准库头的原因之一。