由于编译器在处理函数调用代码时没有找到函数原型,只好根据函数调用代码做隐式声明.

为什么编译器在处理函数调用代码时需要有函数原型?因为必须知道参数的类型和个数以及返回值的类型才知道生成什么样的指令。为什么隐式声明靠不住呢?因为隐式声明是从函数调用代码推导而来的,而事实上函数定义的形参类型可能跟函数调用代码传的实参类型并不一致,如果函数定义带有可变参数(例如printf),那么从函数调用代码也看不出来这个函数带有可变参数,另外,从函数调用代码也看不出来返回值应该是什么类型,所以隐式声明只能规定返回值都是int型的。既然隐式声明靠不住,那编译器为什么不自己去找函数定义,而非要让我们在调用之前写函数原型呢?因为编译器往往不知道去哪里找函数定义.

一下举例出自http://blog.csdn.net/liukun321/article/details/6785608

举例比如出现错误/home/lufee/mydiraver//globalmem.c:193:2: 错误:隐式声明函数‘kmalloc’ [-Werror=implicit-function-declaration]
/home/lufee/mydiraver//globalmem.c:193:2: 错误:隐式声明函数‘kmalloc’ [-Werror=implicit-function-declaration]
/home/lufee/mydiraver//globalmem.c:210:2: 错误:隐式声明函数‘kfree’ [-Werror=implicit-function-declaration]

隐式声明函数错误的意思是函数在未声明之前就被调用了,需要先声明这两个函数,版本变化导致这个错误的出现。

解决方法:

找到kmalloc与kfree的声明头文件并include进来就可以了

#include <linux/slab.h>

函隐式声明函数是什么意思相关推荐

  1. #C语言#警告:隐式声明函数‘xxx’ [-Wimplicit-function-declaration]

    推荐阅读:C语言实现2048小游戏-粤嵌GE6818嵌入式系统实训 C语言编译时报错: 警告:隐式声明函数'xxx' [-Wimplicit-function-declaration] 加下对应函数的 ...

  2. C语言一定要有函数声明吗,1 什么是C语言的隐式函数声明在C语言中,函数在调用前不一定非要声明。如果没有声明,那么编译器会自动按照一种隐式声明的规则,为调用函数的C代码产生汇编代码。下...

    1 什么是C语言的隐式函数声明 在C语言中,函数在调用前不一定非要声明.如果没有声明,那么编译器会自动按照一种隐式声明的规则,为调用函数的C代码产生汇编代码.下面是一个例子: int main(int ...

  3. c语言 隐式声明,关于C#:隐式函数声明和链接

    最近,我了解了C语言中的隐式函数声明.主要思想很明确,但在这种情况下,我对理解链接过程有些麻烦. 考虑以下代码(文件a.c): #include int main() { double someVal ...

  4. 解决E1776:无法引用 函数 “A::A(const A)“ (已隐式声明) -- 它是已删除的函数

    出错原因 先介绍下博主遇到这个错误的背景情况. 有一个类A,没有定义默认构造函数A(): class A{int m_val=0;int m_type=0;A(int val):m_val(val){ ...

  5. 函数的隐式声明 及 rsp,rbp,被调用者和调用者保存的寄存器standerd manuel(Caller/Callee - saved registers)

    函数的隐式声明 https://blog.csdn.net/liangbo930522/article/details/73733415 mpx-linux64-abi.pdf https://sof ...

  6. C语言中的隐式声明是什么,有什么危害?warning: implicit declaration of function ‘xxx’

    今天编译一个代码,提示CUSTOM_LAYER里面有一个C文件函数gettimeofday()隐式声明,用man手册查了一下,需要包含头文件#include <sys/time.h> 那么 ...

  7. C++定义隐式转换函数,将类转换为内部的一个成员变量

    C++中单参数构造函数若不声明为explict,在合适的场合可以产生隐式转换:由成员变量类型转换为类类型. 下面的代码展示如何实现反向的转换: Code highlighting produced b ...

  8. python数据拟合固定参数_如何将数据拟合到非理想二极管方程(隐式非线性函数)并检索参数 - python...

    散乱数据图 我需要将(x,y)-数据拟合到具有两个变量(x和y)的方程式中,并检索5个未知参数. 我正在编写一个脚本,以处理来自简单.txt文件的IV数据(电流电压),并将其拟合为称为非理想二极管方程 ...

  9. 小心编译器的隐式声明

    小心编译器的隐式声明 引子: 在一个ecos项目中出现一个奇怪的问题,内核标准线程休眠函数cyg_thread_delay()在有的地方可以正常执行休眠,有的地方则一休眠不再醒过来. 问题跟踪 在cl ...

最新文章

  1. Web Service 安全性解决方案(SOAP篇)
  2. 使用awk,sort和uniq从ATS访问日志中统计出异常链接域名的次数排名
  3. 一次mysql大数据量查询 慢查询导致服务阻塞后的学习
  4. Transformer模型总结
  5. spring 注释_Spring核心注释
  6. Django之静态文件配置
  7. 残差曲线意义_生存曲线(三):统计分析方法这么多,到底选哪个?
  8. java递归简易应用教程
  9. Linux下apache和fcgi的关系,Linux下编译安装Apache httpd 2.4
  10. 什么是CTS、CLS和CLR
  11. 渗透-N种反弹shell方法
  12. 2月20日 梯度下降、三种方式、三种超参数学习率冲量衰减因子、应用举例
  13. 小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_12、SpringBoot2.x文件上传实战...
  14. c++ strlen 使用
  15. 计算四则表达式(中缀式转后缀式,然后计算结果)
  16. 《社交网络》中Facemash算法分析
  17. ASUS ZenBook Duo 14 UX481电脑 Hackintosh 黑苹果efi引导文件
  18. [解决方案]excel2010分析工具库无法运行“ FUNCRES.NLAM! Showatpdialog”宏
  19. EasyExcel 单元格合并
  20. 个体户如何注册和认证自己的微信小程序

热门文章

  1. 2018 Google I/O 开发者大会发布的那些新技术
  2. No power supply specified for netVCC in Power Rail Confiquration.
  3. 十二星座的12种风味咖啡,最后一个能让你上瘾
  4. ​越学越有趣:『手把手带你学NLP』系列项目01 ——词向量应用的那些事儿
  5. hive-create table
  6. Policy Gradient连续动作 tf.distributions.Normal log_prob = self.normal_dist.log_prob(self.a) 的解释
  7. HashMap(2)-----哈希表
  8. java 拼图游戏_Java小项目之:拼图游戏!
  9. angular自带的jquery lite用法实例,不用引入jq照样回到老夫就用jq的感觉~
  10. 连接数据库失败提示hba.conf不符合的处理方法