gpt4 book ai didi

c - 任何函数的隐式声明警告如何影响我的代码?

转载 作者:太空宇宙 更新时间:2023-11-04 00:41:13 25 4
gpt4 key购买 nike

看到我制作了一个包含几个 .h 和几个 .c 文件的库。

现在在某些情况下我没有删除警告

warning: implicit declaration of function ‘getHandle’

现在我想问你,这会导致我的库的二进制文件出现问题吗?

它会对我的库在嵌入式平台或其他任何地方的执行产生负面影响吗?

最佳答案

在 C90 中,对没有可见声明的函数的调用会创建函数的隐式声明,该函数返回 int 并采用参数的提升类型。例如,如果您的 getHandle 函数返回一个指针,那么编译器将假定它返回一个 int 来生成代码。将结果分配给指针对象至少应该触发另一个警告。它可能工作正常(如果 int 和指针类型的大小相同,并且 int 和指针函数结果以相同的方式返回),或者它可能会出错(例如,如果 int 是 32 位而指针是 64位,或者如果指针结果在 68K 样式的地址寄存器中返回)。

C99 标准从语言中删除了 implicit int。调用没有可见声明的函数是违反约束的,需要进行诊断并可能导致您的程序被拒绝。

如果您只是解决问题,您就不必浪费时间弄清楚如果您不解决它如何工作以及它是否会工作。

关于c - 任何函数的隐式声明警告如何影响我的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7427316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com