精华内容
下载资源
问答
  • c语言 外部函数

    2013-09-20 11:37:51
    extern int add(int number1,int number2 )//定义外部函数 求和 { return number1+number2; } main.c 文件代码: #include extern int add(int number1, int number2);//声明外部函数 int ma

    extern.c 文件代码

    #include <stdio.h>
    extern int add(int number1,int number2 )//定义外部函数 求和
    {
        return number1+number2;
    }
    

    main.c 文件代码:

    #include <stdio.h>
    
    extern int add(int number1, int number2);//声明外部函数
    int main(int argc, const char * argv[])
    {
    
        int a=46;
        int b=37;
        int result= add(a,b);//调用外部函数
        printf("result=%d",result);
        
        return 0;
    }


    展开全文
  • C语言外部函数与内部函数

    千次阅读 2017-12-18 17:09:11
    C语言中,根据函数能否被其他源文件调用,分为内部函数和外部函数 外部函数,可以被其他源文件调用的函数 内部函数,只在定义的文件中有效外部函数开发大型项目,可能包含很多源文件来分别实现,最终,再整合在...

    函数的调用,一般是对同一个源文件中的其他函数进行调用的,也可以对另外一个源文件中的函数进行调用
    C语言中,根据函数能否被其他源文件调用,分为内部函数和外部函数
    外部函数,可以被其他源文件调用的函数
    内部函数,只在定义的文件中有效

    外部函数

    开发大型项目,可能包含很多源文件来分别实现,最终,再整合在一起,有时,一个源文件中,需要调用其他源文件中的函数
    调用外部函数之前,需要在当前源文件中定义外部函数
    定义外部函数的方式,在函数的返回值类型前面添加extern关键字
    示例代码
    extern int add(int x,int y);
    编译器,通过extern关键字会知道,add()函数是定义在其他文件中的外部函数
    示例代码

    第一个源文件
    int add(int x,int y)
    {
    return x+y;
    }
    第二个源文件
    #include <stdio.h>
    extern int add(int x,int y);
    void main()
    {        
    printf("sum=%d\n",add(1,2));
    }

    运行结果
    这里写图片描述

    C语言中
    定义外部函数时,可以省略关键字extern
    修改如下
    int add(int x,int y);

    由函数的返回类型、函数名和参数列表组成,这类格式的代码被称为函数原型
    当代码中包含函数原型时,可能有两种情况
    1、程序员希望编译器自动从其他文件中,查找该函数的定义
    2、程序员先定义未实现的空函数,然后,在其他文件中具体实现

    注意
    声明外部函数时,无论有没有关键字extern,外部函数与原函数定义的返回值类型、函数名称和参数列表必须一致

    内部函数

    外部函数,只要声明一个函数原型,就可以调用其他源文件中的函数,但是,当多人开发时,可能出现函数重名的情况,不同源文件中的同名函数会相互干扰
    此时,就需要一些特殊函数,只在定义的文件中有效,这类函数称为内部函数

    定义内部函数
    在定义内部函数时,需要在函数的返回值类型前面添加static关键字,也称静态函数
    示例代码

    第一个文件
    #include<stdio.h>
    void show()
    {
    printf("%s \n","first.c");
    }
    第二个文件
    #include<stdio.h>
    static void show()
    {
    printf("%s \n","second.c");
    }
    void main()
    {        
    show();
    }

    运行结果
    这里写图片描述

    如果,将第二个文件中的static去
    运行程序会报错

    展开全文
  • 静态库是在编译时,将库编译成可执行程序,运行时不需要外部函数库。没有依赖性。 动态库是在运行时,将库加载到程序中,运行时需要外部函数库。有依赖性。 Window下的静态库和动态库是.lib和.dll文件 Linux下的静态...

    静态库是在编译时,将库编译成可执行程序,运行时不需要外部函数库。没有依赖性。
    动态库是在运行时,将库加载到程序中,运行时需要外部函数库。有依赖性。

    Window下的静态库和动态库是.lib和.dll文件
    Linux下的静态库和动态库是libxxx.a和libxxx.so文件

    Window下vs静态库和动态库的配置过程:
    当需要使用别人的库时,需添加.h,.lib,.dll文件到工程中。

    1. 建立include文件夹,里面存放.h文件,然后右击工程项目,“属性”->”C/C++”->“常规”->”附加库目录”,然后添加.h的路径,一般是”……/include”。
    2. 建立lib文件夹,里面存放.lib文件,然后右击工程项目,“属性”->“链接器”->”输入”->”附加依赖项”,添加对应的.lib文件名称,一般是”…./xxx.lib”。
    3. 建立bin文件夹,里面存放.dll文件,然后右击工程项目,“属性”->“配置属性”->”调试”->”环境”,添加path=“…/bin”
      选择生成.lib文件会生成一个.lib文件夹,里边包含.obj,.lib等文件,这样生成的比较多。但是用的时候只给出lib路径就ok了。
      选择生成.dll文件会生成一个.lib文件夹,里边包含.obj,.lib,.dll等文件,这样生成的比较少,但是用的时候要给出.dll文件。

    常见问题总结:
    1.外部函数引用时,编译时报错Cannot open include file: ‘xxx.h’: No such file or directory
    程序里引用的#include”XXX.h”是相对路径。要么把这里的路径写完整的路径,要么就在右击properties里的C/C++的general的additional include directories添加上这个.h文件的路径才能在程序里应用相对路径。

    2.外部函数引用时,编译时报错“4 unresolved externals”,因为运行程序需要的lib文件没有添加,需要在右击properties里的linker的input里additonal dependencies的添加需要的lib文件。这里需要些完整路径。(如果在general里有路径,这里可以填写那个里边的相对路径)

    3.编译时报错,提示cannot open file ‘xxx.lib’
    因为程序运行时找不到该静态库,要在右击properties里的linker的general里additonal library directories的找到这个lib所在的路径添加上。

    4.编译成功,运行时报错“由于找不到opencv_world310d.dll,无法继续执行代码。重新安装程序可能会解决此问题”。是因为动态运行时找不到这个dll文件。两种解决方法:找到这个dll文件复制到运行程序的.exe同一路径下的位置。或者在properties里的configuration properties的debugging的environment中添加:
    path=E:\dianti\KCM_Demo(2)\OpenCV\opencv-2.4.9\build\x64\vc14\bin

    5.用openCV\opencv3.1.0\build\x64\vc14\lib\opencv_world310d.lib读取视频之后是空的
    if (frame.empty())
    break;
    改成openCV\opencv-2.4.9\build\x64\vc14\lib读取就没有问题。
    换的具体步骤:1.linker中的input改成:E:…\OpenCV\opencv-2.4.9\build\x64\vc14\lib*.lib。2.C/C++中的general的additional include directories中添加E:…\OpenCV\opencv-2.4.9\build\include。3.把configuration properties中debugging中的environment中添加:path=E:…\OpenCV\opencv-2.4.9\build\x64\vc14\bin

    展开全文
  • C语言内部函数与外部函数

    千次阅读 2017-09-24 10:26:02
    内部函数与外部函数的区分标准是,该函数能否被其他源文件调用。

    内部函数与外部函数的区分标准是,该函数能否被其他源文件调用。

    • 内部函数
      如果一个函数只能被本文件中的其他函数调用,称为内部函数。在定义内部函数的时候,在函数名和函数类型的前面加static,即:
      static 类型名 函数名(形参列表)
      例如函数的首行:static int function(int a)
      表示该函数function是一个内部函数,只能被本文件中的函数调用,而不能被其他文件调用。
    • 外部函数
      与内部函数相反,外部函数则是可以被其他文件调用的函数。在函数声明时,加上extern关键字,则声明为外部函数,可供其他文件调用。
      如:函数首部可以是:extern int fun (int a,int b)
      C语言规定如果在定义函数时省略extern,则默认为外部函数。所以除非声明为static,我们常写的都是外部函数。
    展开全文
  • 内部函数和外部函数内部函数: 需加static声明,又称静态函数,只能在该文件中调用,在其他文件中不能被调用外部函数:1. 在定义函数时,若在函数首部的...C语言规定,定义函数时省略了extern 则隐含为外部函数,可被
  • 内部函数:不能被其他源文件调用的函数 static [数据类型] 函数名([参数]) ...外部函数:能被其他源文件调用的函数(系统默认)extern也可以省略 extern [数据类型] 函数名([参数])   ...
  • 01关于变量的声明和定义1、一个函数一般由两部分组成:声明部分和执行语句。2、对变量而言,声明与定义的关系稍微复杂一些。在声明部分出现的变量有两种情况:一种是需要建立存储空间的,另一种是不需要建立存储空间...
  • 目录: 一:定义 二:函数的一般形式 组成部分 1.返回类型 ...外部函数&内联函数 1.内部函数 定义: 2.外部函数 定义: 3.内联函数 定义: 注意: 七:main 函数的参数 1. main 函数带参...
  • C语言外部函数

    2019-07-24 18:23:30
    在需要调用此函数的文件中,用extern对函数声明,表示该函数是在其他文件中定义的外部函数 实战演练:有一个字符串,内有若干个字符串,要求输入一个字符串,程序便将字符串该字符删去。要求用外部函数实现! #...
  • 人本身是有自己的特定方法的,比如当你说话的时候,不希望是别人让你怎么说你就怎么说吧,...在C语言中不能被其他源文件调用的函数称谓内部函数,内部函数由static关键字来定义,因此又被称谓静态函数,形式为: s...
  • 内部函数:不能被其他源文件调用的函数 static [数据类型] 函数名([参数]) ...外部函数:能被其他源文件调用的函数(系统默认)extern也可以省略 extern [数据类型] 函数名([参数]) ...
  • C语言外部函数和内部函数

    千次阅读 2016-02-12 08:54:23
    外部函数】  【内部函数】 1.外部函数  定义的函数能被本文件和其它文件访问(默认)。 注:不允许有同名的外部函数。 2.内部函数  定义的函数只能被本文件访问,其它文件不能访问。 注:允许...
  • c语言-函数

    2020-07-31 16:32:23
    1、内部函数 如果一个函数只能在本文件使用,它称为内部函数。...c语言规定,如果在定义函数时省略extern,则隐含为外部函数。 在需要调用外部函数的文件中,用extern声明所用的函数为外部函数。 ...
  • 一起学习C语言函数(二)

    千次阅读 2020-08-01 21:51:07
    本章节,我们分析内部函数和外部函数,以及变量的生命周期。 章节预览: 4. 外部函数与内部函数 4.1 外部函数 4.2 内部函数 5. 变量的生命周期与作用域 目录预览 章节内容: 4. 外部函数与内部函数    ...
  • C语言的内部函数和外部函数用法

    千次阅读 2010-04-09 16:53:00
    内部函数和外部函数内部函数: 需加static声明,又称静态函数,只能在该文件中调用,在其他文件中不能被调用外部函数:1. 在定义函数时,若在函数首部的...C语言规定,定义函数时省略了extern 则隐含为外部函数,可被
  • C语言 *函数

    2017-11-20 13:37:10
    所有的C程序必须定义一个称之为main的外部函数,main函数是程序的入口,也就是当程序启动时所执行的第一个函数,当这个函数返回时,程序也将终止,并且这个函数的返回值被看成是程序成功或失败的标志,如果在到达...
  • C语言函数与指针

    2020-07-05 16:25:28
    C语言的变量类型一样,函数也有内部函数和外部函数之分。可以被其他文件调用的为外部函数;不能被其他文件调用的为内部函数。相应的,内部函数使用关键字static进行修饰,外部函数使用extern关键字进行修饰。 类型...
  • C语言静态函数

    2019-10-08 17:57:39
    当一个源程序由多个源文件组成时,根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。 1内部函数(又称静态函数)  如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一...
  • C语言-函数

    2020-07-17 10:50:10
    函数设计应该追求高内聚低耦合,即函数体内部实现修改了,尽量不要对外部产生影响。 函数尽可能少的使用全局变量,且函数参数不宜设置过多,并且尽量做到资源谁申请谁释放。 函数递归 递归的两个条件: 将问题...
  • 外部函数由extern定义,可以被其他源文件的函数调用。extern可以省略。 这样的分类可以让我们的代码更有可读性和模块化。 file1.c #include int main() { extern double cost(double dis, double time);//...
  • C语言中有关外部函数调用的问题

    万次阅读 多人点赞 2016-06-16 21:44:57
    首先指出一点,我们通常所说的编译器并非仅指编译器,确切来说是编译工具链,里面...而外部函数的声明(一般声明在头文件中)只是令程序顺利通过编译而已,此时并不需要搜索到外部函数的实体。 当然,外部函数实体...
  • C语言extern调用外部函数

    千次阅读 2016-12-22 21:26:16
    > lsxuanzeSort.c common.c> cat common.c#include //公共函数文件//打印long型数组的内容 void print_array_long(long arr[],long length) { long i; for(i = 0;i;i++){ printf("%ld ",arr[i]);
  • 一起学习C语言函数(三)

    千次阅读 2020-09-06 22:28:01
    中,我们了解了内部函数和外部函数,以及变量的声明周期与作用域。本章节,我们分析函数的存储类别与声明方式,以及函数的递归调用原理。 章节预览: 6. 变量的存储类别与声明方式 7. 函数的递归调用 目录预览 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,869
精华内容 1,147
关键字:

c语言外部函数

c语言 订阅