声明

作者: 爱生活_更爱挺自己 | 来源:发表于2020-11-12 11:29 被阅读0次

声明

//main.c
#include<stdio.h>
#include"max.h"

//int max(int a, int b);

int main(int argc, char const *argv[])
{
    int a = 5;
    int b = 6;
    printf("%d\n", max(a,gAll));
    
    return 0;
}
//max.c
#include"max.h"

int gAll = 12;
    
int max(int a, int b)
{
    return a>b?a:b;
}
//max.h
int max(int a, int b);
extern int gAll;
12

变量的声明

  • int i;是变量的定义
  • extern int i;是变量的声明

声明和定义

  • 声明是不产生代码的东西

    • 函数原型
    • 变量声明
    • 结构声明
    • 宏声明
    • 枚举声明
    • 类型声明
    • inline函数
  • 定义是产生代码的东西

头文件

  • 只有声明可以被放在头文件中

    • 是规则不是法律
  • 否则会造成一个项目中多个编译单元里有重名的实体

    • *有些编译器允许几个编译单元中存在同名的函数,或者用weak修饰符来强调这种存在

重复声明

  • 同一个编译单元中,同名的结构不能被重复声明
  • 如果你的头文件里有结构的声明,很难这个头文件不会在一个编译单元里被#include多次
  • 所以需要“标准头文件结构”
//main.c
#include<stdio.h>
#include"max.h"

//int max(int a, int b);

int main(int argc, char const *argv[])
{
    int a = 5;
    int b = 6;
    printf("%d\n", max(a,gAll));
    
    return 0;
}
//max.c
#include"max.h"

int gAll = 12;
    
int max(int a, int b)
{
    return a>b?a:b;
}
//max.h
#ifndef _MAX_H_
#define _MAX_H_

int max(int a, int b);
extern int gAll;

struct Node{
    int value;
    char *name;
};

#endif

//min.h
#include "max.h"
12

标准头文件结构

#ifndef _LIST_HEAD_
#define _LIST_HEAD_

#include "node.h"

type struct _list{
Node* head;
Node* tail;
} List;

#endif
  • 运用条件编译和宏,能保证这个头文件在一个编译单元中智慧被#include一次
  • pragma once也能起到相同的作用,但是不是所有的编译器都支持

相关文章

  • 声明声明

    Hello,宝宝们好,大家都喜欢看什么文章,小说什么的,可以告诉我啊,我可以做给你们的,或者喜欢什么图片,文字,背...

  • 不是声明的声明

    本人所写简书纯属个人观点,不宜过度解读。写作的初心是为了练手、练笔、练心,为了交友、交情(交流感情)、交心...

  • 声明

    本书是 我吃西红柿 大大的《盘龙》于作者 突破想象而写的《重生盘龙》 个人感受:《盘龙》《重生盘龙》上上下下...

  • 声明

    个人简介改不了。 我的公众号更名为"M的小杂堂" 微博更名为"Meyor_tian" 我会好好更新的咯~

  • 声明

    耳闻风传碾子有人在我出外或办事的时候,在我屁股后面跟上跟下的,说是我覃克松的女人。对于这种行径,我相信明眼人一看就...

  • 声明

    声明: 由于有读者表示对我的抑郁症系列文章《抑郁症手记》等产生反感, 为不影响大家情绪,造成更大的分歧,本人所有相...

  • 声明

    这条新浪微博阅读量已经506万次了。小崔的是与非,自有历史证明。我转发文章的目的没别的,只是让大家认清这个汉子。对...

  • 声明

    深度学习 简介   时至今日,AI/ML的技术开始了大规模的普及,在这个时代下,了解学习一些相关的知识是非常有必要...

  • 声明!!!

    今天想了想,照我现在的节奏,想写完这个故事估计得连载了,既然要连载,《认识八年的女孩,我要不要放手一搏!》...

  • 《声明》

    本人所写所有东西除特别强调以为其余均为本人所写 未经允许不得私自转载引用 盗用 否则将会追究起法律责任!! ...

网友评论

      本文标题:声明

      本文链接:https://www.haomeiwen.com/subject/esoubktx.html