zoukankan      html  css  js  c++  java
  • C/C++中的声明与定义

    含义

    声明(Declaration), 用于告诉编译器被声明的函数/变量的存在, 及它们的类型/调用格式信息, 以检查是否被正确调用. 声明不分配内存空间.
    定义(Definition), 用于告诉编译器被声明的函数/变量的存在位置, 会分配内存空间.
    变量/函数在被使用之前一定要被声明. 声明和定义可以同时进行.
    可以有多个声明, 但只能有一个定义.

    函数的声明与定义

    函数的Declaration由函数的签名(函数名+参数列表)与return类型, 外加一个分号组成. 如:

    void fn(int a); 
    

    定义则有函数实体:

    void fn(int a)
    {
        printf("%d
    ", a);
    }
    

    C与C++的声明有一个不同之处:

    void fn();
    

    不带参的声明在C里代表可以传入任何参数, 而在C++中则代表不传入任何参数.
    例如下面这段代码:

    #include <stdio.h>
    void fn();
    
    int main()
    {
        printf("Hello World!
    ");
        fn(1);
    }
    
    void fn(int a)
    {
        printf("%d
    ", a);
    }
    

    在C语言中, 它可以通过编译并执行, 但在C++中则不行.

    若函数第一次出现时就定义了函数体, 则代表声明与定义同时进行.

    变量的声明与定义

    大多同时进行. 也可以用关键字extern来告诉编译器, 这仅仅是个声明:

    int a; //声明与定义同时进行
    extern int b; //只有声明, 定义不在此处. 
    

    其它语言中的类似语法

    • Java中的abstract方法及interface, 很纯粹的declaration.
    • Python中的global关键字与extern作用类似.
  • 相关阅读:
    Win7怎么进入安全模式 三种轻松进入Win7安全模式方法
    Eclipse中新建applet 错误
    经典语录
    轻松一刻
    WIN XP蓝屏代码大全
    大话设计模式简单总结
    生命是闹着玩儿,事事显出如此 (转)
    Educational Codeforces Round 42 (Rated for Div. 2) A
    2018年东北农业大学春季校赛----不完整题解
    POJ
  • 原文地址:https://www.cnblogs.com/dengdan890730/p/6217438.html
Copyright © 2011-2022 走看看