zoukankan      html  css  js  c++  java
  • c26---文件包含include

    //
    //  main.c
    //  文件包含
    
    #include <stdio.h>
    
    // 函数可以重复声明, 但不能重复定义
    void test();
    void test();
    void test();
    void test();
    
    
    #include "zs.h"// 把zs.h文件全部拷贝多来,int sum(int v1, int v2);声明之后就可以用了。
    // 重复导入会导致重复声明不会报错,但是会降低编译效率
    //#include "ls.h"
    
    /*
     #include <>
     <>会先去编译器环境下查找, 找不到再去系统的环境下查找,
     #include ""
     ""会先在当前文件查找, 找不到再去编译器环境下查找, 找不到再去系统的环境下查找,
     作用: 
     将""或者<>中的内容完全拷贝过来。
     
     注意:
     如果正确的编写.h文件,如果防止循环拷贝  A拷贝B, B拷贝A,间接拷贝问题  A拷贝B, B拷贝C, C拷贝D
     */
    int main(int argc, const char * argv[]) {
        printf("sum = %i
    ", sum(10, 20));
        
        printf("minus = %i
    ", minus(10, 20));
        
        return 0;
    }
    
    void test()
    {
        printf("0000000
    ");
    }
    //
    //  zs.h
    
    // 为了放置重复include "zs.h"导入, 一般情况下会在.h中添加上 头文件卫士,防止头文件重复导入。
    #ifndef __ZS__H__ 
    
    /* __ZS__H__是随便写的,判断是否"没有"定义了名称叫做 __ZS__H__ 的宏,
    没有定义就把 #define __ZS__H__     
    int sum(int v1, int v2);   
    #include "ls.h"  编译进去,
    并且同时定义一个宏__ZS__H__和方法的声明。再次遇见include "zs.h"定义了__ZS__H__ 宏,#ifndef到#endif之间的内容都不会被编译进去
    */
    #define __ZS__H__ // 定义一个叫做__ZS__H__的宏
    int sum(int v1, int v2);
    #include "ls.h"
    
    #endif
    //
    //  zs.c
    //  day10
    
    #include "zs.h"
    int sum(int v1, int v2)
    {
        int res = minus(v1, v2) + v1;
        return res;
    }
    //
    //  ls.h
    
    int minus(int v1, int v2);
    #include "zs.h"    //.h引入。.c里面自动就有, zs.h引入了ls.h,ls.h引入了zs.h,
    int sum(int v1, int v2); 
    //
    //  ls.c
    
    #include "ls.h"
    int minus(int v1, int v2)
    {
        int res = sum(v1, v2) - v2;
        return res;
    }
  • 相关阅读:
    php基础
    MYSQL 常用函数
    MYSQL 练习题
    MYSQL 查询
    MYSQL:增删改
    隐藏导航
    分层导航
    图片轮播!
    你帅不帅?
    PHP 流程
  • 原文地址:https://www.cnblogs.com/yaowen/p/7403960.html
Copyright © 2011-2022 走看看