zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【android tools】内存、网络、界面性能响应优化的工具
    mysql命令(数据库备份与恢复)
    mysql中一些简单但是新手容易犯的错误
    Mysql bench执行sql语句批量操作数据所遇到的问题
    Excel “此单元格中的数字为文本格式,或者其前面有撇号” 设成数字格式
    VC程序异常中断的原因
    vs dump调试
    winsock.h与winsock2.h出现重定义或不同的链接
    QT中QString与string的转化,解决中文乱码问题
    线程中CreateEvent和SetEvent及WaitForSingleObject的用法
  • 原文地址:https://www.cnblogs.com/gezi1007/p/13672693.html
Copyright © 2011-2022 走看看