• c语言函数与指针复习


    ------------恢复内容开始------------

     之前实习学linux kernel说系统调用起到一个分隔user space和kernel space的作用

    函数的声明

    关于函数声明这个概念一直没明白,java中没见到过

    是这样的,c是从上往下执行的,如果函数写在main方法的上面则不用声明,相当于已经识别过一遍了。但是如果函数写在主函数的下面,编译器执行完主函数可能不去看下边的函数了,所以需要声明。(为啥java不需要?。。查了一下好像是java的编译器先进一些?)

    3、声明的方法
    什么时候需要声明
    1)主调函数和被调函数在同一个.c 文件中的时候(可能回来会调用

      老师说有些编译器高级的话可能也不需要声明??我试试我的

      vscode虽然能把函数执行出来但还是会报错说需要声明

    1] 直接声明法(常用)
    将被调用的函数的第一行拷贝过去,后面加分号

    #include <stdio.h>
     void fun();
    int main(int argc, char const *argv[])
    {
        printf("233333test
    ");
        fun();
        return 0;
    }
    void fun(){
        printf("helloworld
    ");
    }

    2] 间接声明法
    将函数的声明放在头文件中,.c 程序包含头文件即可

    fun.h

    extern void fun();

    fun.c

    #include <stdio.h>
    //  void fun();
    #include "fun.h"
    int main(int argc, char const *argv[])
    {
        printf("233333test
    ");
        fun();
        return 0;
    }
    void fun(){
        printf("helloworld
    ");
    }

    2)主调函数和被调函数不在同一个.c 文件中的时候
    一定要声明
    声明的方法:
    直接声明法
    将被调用的函数的第一行拷贝过去,后面加分号,前面加 extern(亲测不行。。。用下面那个)

    update:我知道为什么不行了,我的vscode没有配置好。。。gcc命令后面只能跟一个单文件,不能多文件我晕


    间接声明法(常用)
    将函数的声明放在头文件中,.c 程序包含头文件即可(fun.c需要添加,main函数.c文件也要添加!)

    #include "fun.h"

    不行失败了 总是报错主函数中找不到那个外部方法

    !!!!!!我才知道还得配置多文件 不然他总是gcc单文件运行

    gcc fun.c fun1.h fun1.c -o fun

    然后是函数.c文件包含.h头文件,头文件里写上对应函数的声明,参考这里  

    main函数.c文件中也要包含自定义.h头文件,如果用到方法的话。不在同一级目录的时候还得加上目录

    哎呀不知道怎么搞这个setting.json文件使得gcc后面可以跟多个文件

    还有makefile是什么啊。。。是只有Linux中才有吗?

    ------------恢复内容结束------------

    ......ljmtk

  • 相关阅读:
    vim代码对齐
    在liunx中,快速查找到以前使用过的命令行
    linux文件权限与目录设置
    ASP常用代码
    存储过程
    WebService
    SNS
    浪曦博客系统
    SQL事件探查器与索引优化向导
    光盘AJAX
  • 原文地址:https://www.cnblogs.com/gezi1007/p/13672693.html
Copyright © 2020-2023  润新知