大连鼎信网站建设,网站建设的经济效益,如何入侵网站后台,wordpress挂饰插件某个函数fun_1()是在lib内#xff0c;没法修改的#xff0c;在程序中大量的使用了该函数#xff0c;现在想把原本fun_1失效#xff08;现在失效的方法是#define fun_1(..)),用另外一个函数fun_2(),可是fun_2最后也需要调用fun_1,上面的失效方法感觉就不行了#xff0c;请问… 某个函数fun_1()是在lib内没法修改的在程序中大量的使用了该函数现在想把原本fun_1失效现在失效的方法是#define fun_1(..)),用另外一个函数fun_2(),可是fun_2最后也需要调用fun_1,上面的失效方法感觉就不行了请问怎么做才对我把问题简单整理下我们库文件里有个函数是read()我们现在要自己定义一个名字一样的函数read(),main()函数首先调用我们自己定义的函数read()自己定义的函数要再定义库文件中的read()函数。问题就出在如何让我们自己定义的read()函数只调用lib库中的read函数而不会调用自己。解决思路-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(fd0)14 {15 perror(open fail\n);16 return;17 }18 read(fd,buf,16);19 printf(enter test():%s\n,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().函数调用顺序如下问题解决了你学到了吗来源https://blog.csdn.net/daocaokafei/article/details/109686092