• c 声明、定义、初始化的差别


    在C语言中,声明(declaration)、定义(definition)和初始化(initialization)是三个重要的概念,它们之间有一些明显的差别。以下是它们之间的主要区别:

    声明(Declaration)

    声明是告诉编译器某个变量或函数的名字和类型,但并不为变量分配内存空间,也不为函数提供具体的实现。它仅仅是一个声明,告诉编译器“这里有这么一个东西”。

    例如,声明一个整型变量和一个函数:

    extern int x; // 声明一个整型变量x,但不在当前文件中定义
    void foo(int); // 声明一个函数foo,它接受一个整型参数并返回void

    在这个例子中,extern int x; 是一个变量声明,它告诉编译器在其他地方(可能是另一个源文件中)有一个名为 x 的整型变量。而 void foo(int); 是一个函数声明,它告诉编译器存在一个名为 foo 的函数,该函数接受一个整型参数并返回 void

    定义(Definition)

    定义是为变量分配内存空间(对于变量),或者为函数提供具体的实现(对于函数)。它包含了变量或函数的所有必要信息,包括名字、类型、初始值(对于变量)以及函数的实现体(对于函数)。

    例如,定义一个整型变量和一个函数:

    int x = 0; // 定义并初始化一个整型变量x
    void foo(int y) {
    printf("%d\n", y);
    } // 定义函数foo,它接受一个整型参数y并打印它

    在这个例子中,int x = 0; 是一个变量定义,它定义了一个名为 x 的整型变量,并初始化为 0。而 void foo(int y) {...} 是一个函数定义,它提供了函数 foo 的具体实现。

    初始化(Initialization)

    初始化是为变量分配一个初始值。这通常在变量定义时完成,但也可以在变量定义后的某个时间点进行。

    例如:

    int x = 0; // 定义并初始化一个整型变量x
    int y; // 定义整型变量y,但没有初始化(它有一个不确定的值)
    y = 5; // 初始化变量y

    在这个例子中,int x = 0; 是定义并初始化变量 x 的示例,而 int y; 仅仅是定义变量 y,没有初始化。然后,y = 5; 是在定义后初始化变量 y 的示例。

    总结

    • 声明:告诉编译器某个变量或函数的存在和类型,但不分配内存或提供实现。
    • 定义:为变量分配内存空间或提供函数的实现体。对于变量,定义通常包括初始化。
    • 初始化:为变量分配一个初始值。这可以在定义时完成,也可以在定义后的某个时间点进行。
  • 相关阅读:
    两件事
    《中华人民共和国消防法》(2021年修订版)解读
    提高工作效率的神器:基于前端表格实现Chrome Excel扩展插件
    音频——I2S 标准模式(二)
    CamVid数据集--学习笔记
    java毕业设计基于VUE电脑城摊位出租系统mybatis+源码+调试部署+系统+数据库+lw
    iOS AVAudioRecorder简介
    1.AUTOSAR的架构及方法论
    AR爆发的前夜,Rokid站在了门口
    ChatGPT成精了!
  • 原文地址:https://blog.csdn.net/xie__jin__cheng/article/details/139273799