欢迎访问 生活随笔!

凯发ag旗舰厅登录网址下载

当前位置: 凯发ag旗舰厅登录网址下载 > 编程资源 > 编程问答 >内容正文

编程问答

java 函数名调用-凯发ag旗舰厅登录网址下载

发布时间:2024/10/8 编程问答 1 豆豆
凯发ag旗舰厅登录网址下载 收集整理的这篇文章主要介绍了 java 函数名调用_粉丝提问|c语言:如何定义一个和库函数名一样的函数,并在函数中调用该库函数... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

问题描述:

某个函数fun_1()是在lib内,没法修改的,在程序中大量的使用了该函数,现在想把原本fun_1失效(现在失效的方法是#define fun_1(..)),用另外一个函数fun_2(),可是fun_2最后也需要调用fun_1,上面的失效方法感觉就不行了,请问怎么做才对?

我把问题简单整理下:

  • 我们库文件里有个函数是read()
  • 我们现在要自己定义一个名字一样的函数read(),
  • main()函数首先调用我们自己定义的函数read()
  • 自己定义的函数,要再定义库文件中的read()函数。
  • 粉丝提问,必须安排!一口君实力宠粉!

    想学习c语言、linux、驱动、arm的同学可以加一口君微信,拉你进群。

    解决思路-static

    如果我们要使用一个和库函数相同名字的函数,就要借助static关键字。

    在函数的返回类型前加上static,就是静态函数。其特性如下:

  • 静态函数只能在声明它的文件中可见,其他文件不能引用该函数
  • 不同的文件可以使用相同名字的静态函数,互不影响
  • 其他库如果有相同的函数名,有限使用本文件的静态函数
  • 举例

    系统调用函数read(),定义如下:

    现在我们想定义一个自己的函数,名字也是read,要如何操作呢?

    #include #include #include #include static void read() {printf("my read func()n"); } int main() {read(); }

    我们可以看到,虽然我们添加了系统调用read()的头文件,但是调用的是我们自己定义的read()函数。

    下面我们来看下,如果我们定义的read函数又想调用系统调用read()函数应该怎么办呢? 那就必须再增加一个文件,把相关功能放到另外一个文件中,在同一个文件中是没有办法实现的。

    上代码,不上代码,没有论据的知识点都是耍流氓。一口君绝大部分文章都是有实例代码支撑,

    //test.c1 #include 2 #include 3 #include 4 #include 5 6 7 void test()8 {9 int fd;10 char buf[128]={0};11 12 fd = open("123.c",o_rdwr);13 if(fd<0)14 {15 perror("open failn");16 return;17 }18 read(fd,buf,16);19 printf("enter test():%sn",buf);20 }//123.c1 #include 2 #include 3 #include 4 #include 5 6 extern void test();7 static void read()8 {9 printf("my read func()n");10 test();11 }12 int main()13 {14 read();15 }

    执行结果

    由执行结果可知,程序既调用到了我们自己调用的read()函数,也调用到了系统调用函数read().

    函数调用关系如下:

    更多嵌入式linux 入门的知识 ,请关注 一口linux

    总结

    以上是凯发ag旗舰厅登录网址下载为你收集整理的java 函数名调用_粉丝提问|c语言:如何定义一个和库函数名一样的函数,并在函数中调用该库函数...的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。

    网站地图