您的位置:首页 > 编程语言 > C语言/C++

C语言里面不使用函数原型潜在的风险。

2011-09-01 21:21 232 查看
C语言里面不使用函数原型潜在的风险。

1.编译时参数类型不能被检查,这种情况发生在没有函数声明或者将函数声明为return_type func();时被编译器理解为参数个数不确定
2.不使用函数原型时,参数传递时有类型提升,char->int, float->double ..如果函数定义时是用的ANSI形式,就会隐藏错误
参见《C专家编程》上提到的:
ANSI函数声明(原型)与K&R函数定义,如果使用一个较窄的类型时就会失败,函数传递时是实际的较窄类型,而函数体内期望得到的是提升后的类型
K&R函数声明与ANSI函数定义,如果使用一个较窄的类型时就会失败,函数传递时是提升后类型,而函数体内期望得到实际的较窄的类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: