首页 > 其他分享 >C语言,函数包含失败问题

C语言,函数包含失败问题

时间:2023-06-13 10:13:49浏览次数:38  
标签:__ 头文件 函数 包含 support inside C语言 SUPPORT

1.头文件包含顺序出错导致头文件中的函数无法使用

eg:在主函数中调用support.h中的strcat()函数失败,但是明明已经包含了strcat()函数的头文件进来;编译器还是提示“Undefined sysbol support (refreed from xxx.o)”.

以下函数只是简单举例,请不要直接拿来编译

main中,先调用了includes.h头文件,然后再调用inside.h函数,此时编译器是先包含support.h,而没有先定义SUPPORT_EN,所以编译无法找到strcat函数。就算是第二行再包含了一次inside.h也没有用,因为编译器已经不会再包含一次support.h函数了,所以,需要先调用inside.h头文件,不可以先调用support.h头文件。

main.c

#include "includes.h"
#include "inside.h"

void main()
{
    char tmep[10] = "":
    
    strcat(temp,"hello!");
}

includes.h

#ifndef __SUPPORT_H__
#define	__SUPPORT_H__

#include "support.h"

#endif

support.h

#ifndef __SUPPORT_H__
#define	__SUPPORT_H__

#ifdef SUPPORT_EN
void strcat(char *p1,char *p2);
#endif

#endif

inside.h

#ifndef __INSIDE_H__
#define	__INSIDE_H__

#define	SUPPORT_EN
#include "support.h"

#endif

support.c

#include "inside.h"

void support(char*p1,char*p2){
    return;
}

标签:__,头文件,函数,包含,support,inside,C语言,SUPPORT
From: https://www.cnblogs.com/isyefeng/p/17476709.html

相关文章

  • 函数exit,参数 EXIT_FAILURE,参数EXIT_SUCCESS
    1、函数:exit()所在头文件:stdlib.h功能:关闭所有文件,终止正在执行的进程exit(0)表示正常退出exit(x)都表示异常退出,这个x是返回给操作系统的,以供其他程序使用return和exit:无论在哪里使用main都会终止程序,return只是将控制权交给递归的前一级。return和exit的区别......
  • 解压gzip数据流 和 file_get_contents()函数支持SSL错误和header
    file_get_contents()函数的相关参数,支持SSL错误和header $options=array("ssl"=>array("verify_peer"=>false,"verify_peer_name"=>false,), "http"=>array('timeout......
  • 文件包含漏洞(----php伪协议)
    文件包含漏洞在通过PHP的函数引入文件时,为了灵活包含文件会将被包含文件设置为变量,通过动态变量来引入需要包含的文件。此时用户可以对变量的值可控,而服务器端未对变量值进行合理地校验或者校验被绕过,就会导致文件包含漏洞。文件包含函数include()代码执行到include()函数......
  • 箭头函数this指向
    箭头函数与普通函数的区别1、语法更加简洁清晰2、箭头函数不会创建自己的this箭头函数没有自己的this,它会捕捉自己在定义时所处外层执行环境的this,并继承这个this值。所以箭头函数中this的指向在它被定义的时候就已经确定了,之后不再改变。下面例子中,fun1中setTimeout中使用......
  • 2023-06-12:如果一个正整数自身是回文数,而且它也是一个回文数的平方,那么我们称这个数为
    2023-06-12:如果一个正整数自身是回文数,而且它也是一个回文数的平方,那么我们称这个数为超级回文数。现在,给定两个正整数L和R(以字符串形式表示),返回包含在范围[L,R]中的超级回文数的数目。输入:L="4",R="1000"。输出:4。答案2023-06-12:该算法的基本思路是从较小的回文数开始......
  • mv删除包含隐藏文件的所有文件
    摘自:https://blog.csdn.net/ficksong/article/details/52447729使用命令:mv*.[^.]*..解释如下:1.mv命令的最后一个参数是要移动文件的目标位置;2.第一个*匹配除了隐藏文件的所有文件;3.隐藏文件使用.[^.]*匹配4.匹配隐藏文件用.[^.]*为什么不用.*.*会匹配目录.和..5..[^.]*......
  • 2023-06-12:如果一个正整数自身是回文数,而且它也是一个回文数的平方,那么我们称这个数为
    2023-06-12:如果一个正整数自身是回文数,而且它也是一个回文数的平方,那么我们称这个数为超级回文数。现在,给定两个正整数L和R(以字符串形式表示),返回包含在范围[L,R]中的超级回文数的数目。输入:L="4",R="1000"。输出:4。答案2023-06-12:该算法的基本思路是从较小的回......
  • 函数、极限与连续
    函数、极限与连续映射:又称为算子,一个非空集合X的元素按某种法则f与另一个非空集合Y的元素对应。在映射f下,y称为x的像,x称为y的原像。集合X称为定义域Df,定义域的元素的像的集合称为值域Rf。也就是说,\(R_f\subsetY\)。映射分为以下三种:单射:一个x对应一个y;满射:Y中任......
  • java8随手记(包含idea连接远程分支出现Nothing to update问题)
    Steam流一、映射1.map()和.flatMap()map将数据放入集合中,返回Steam流中。例如:map集合{1,2,3},返回Steam流[a,b,c,{1,2,3}]flatMap将将集合中的数据,返回Steam流中.例如:flatMap集合{1,2,3},返回Steam流中[a,b,c,1,2,3]注意:add与addAll有同样的效果。   ......
  • 【Python入门教程】Python常用表格函数&操作(xlrd、xlwt、openpyxl、xlwings)
    ​        在我们使用Python时,避免不了与Excel打交道。同样Python的三方库和代码的简洁性也为我们处理大数据提供了便利。今天给大家介绍一下常用的处理表格的函数,同时还有一些常用的操作。                这些都是我在使用Python处理Excel时用到的......