zoukankan      html  css  js  c++  java
  • 007 头文件 : 作用/组织/包含

    /*
    目录:
       一: 编译器过程
       二: 头文件作用
       三: 头文件组织原则
       四: 头文件包含原则
       五: 测试代码
    */

    一: 编译器过程

    编译器过程:
        1 预处理
        2 词法和语法分析
        3 编译阶段 
        4 链接阶段

    二: 头文件作用

    头文件作用:
        1 简化声明: 有利于模块化设计
        2 提供接口: 保密 - 不公开源码
        3 类型检查: 外部调用某头文件接口,与头文件声明不一样,编译器会报错。

    三: 头文件组织原则

    头文件组织原则:
        1 不应包含本地数据,以降低模块间耦合度
        2 不允许定义变量和函数
        3 只能有变量和函数声明,及宏和类型(结构体)定义
        4 尽量使用#pragma once

    四: 头文件包含原则

    头文件包含原则:
        1 头文件包含顺序: 最特殊到一般
        2 仅包含当前必需的头文件,减少头文件的嵌套和交叉引用,加快编译速度。
        3 源文件中包含的头文件尽量不要有顺序依赖
        4 尽量在源文件中包含头文件,而非在头文件中。且源文件仅包含所需的头文件。 
        5 尽量保证用户使用此头文件时,无需手动包含其他前提头文件,即此头文件内已包含前提头文件
        
    .h文件是头文件,内含函数声明、宏定义、结构体定义
    .c文件是程序文件,内含函数实现,变量定义等内容
    大神链接: https://www.cnblogs.com/clover-toeic/p/3851102.html

    五: 测试代码

    文件结构

    // Plus.h
    
    #include "stdafx.h"
    
    int Plus(int i);    // 函数声明
    
    extern int gNum;    // 变量声明
    extern int gNum2;    // 变量声明
    // Plus.cpp
    
    #include "Plus.h"
    
    int gNum = 3;    // 变量定义 - 全局变量
    
    int Plus(int i)
    {
        printf("Plus
    ");
    
        int nNum = 0;
        nNum = gNum + gNum2;
        printf("%d
    ", nNum);
    
        return nNum;
    }
    // ConsoleApplication9.cpp
    
    #include "stdafx.h"
    #include "Plus.h"
    
    int gNum2 = 10;    // 变量定义 - 全局变量
    
    int main()
    {
        int nNum = 3;
        printf("main
    ");
        nNum = Plus(nNum);
    
        nNum = nNum + gNum;
        printf("%d
    ", nNum);
    
        return 0;
    }
    /*
    // result
    main
    Plus
    13
    16
    */
  • 相关阅读:
    在linux写一个shell脚本用maven git自动更新代码并且打包部署
    maven mvn 命令行 编译打包
    linux修改文件为可执行文件
    shell脚本中根据端口号kill对应的应用进程
    linux如何查看端口被哪个进程占用?
    LINUX中如何查看某个端口是否被占用
    The JAVA_HOME environment variable is not defined correctly的错误
    Linux配置Java环境变量
    requests
    https://www.cnblogs.com/zheting/category/1086753.html
  • 原文地址:https://www.cnblogs.com/huafan/p/11488975.html
Copyright © 2011-2022 走看看