zoukankan      html  css  js  c++  java
  • C++中声明和定义的区别

    1、定义包含了声明,但是声明不包含定义,

    如  int a = 0; //定义并声明了变量 a

    extern int a;  //只是声明了有一个变量 a 存在,具体 a 在哪定义的,需要编译器编译的时候去找。

    2、函数也是类似,定义的时候同时声明。但如果只是声明,编译器只知道有这么个函数,具体函数怎么定义的要编译器去找。

    void fun1();  //函数声明
    
    void fun1(){  //函数定义
        cout<<"fun1"<<endl;
    }

    3、extern 关键字声明在变量和函数之前的说明。

    (1)、作用在变量之前

    变量只允许定义一次,但可以在多个文件中声明。

    Test.cpp 中:

    int s32Val = 0;     // 定义一个变量 s32Val,并赋初值为 0

    Test1.cpp 中:

    extern int s32Val;  // 声明变量 s32Val,它在 Test.cpp 中被定义,此处不可赋值

    Test2.cpp 中:

    extern int s32Val;  // 声明变量 s32Val,它在 Test.cpp 中被定义,此处不可赋值

    (2)、作用在函数之前

    Test.h:

    extern void Fun();   // 函数声明,extern 用于标识次函数为外部可调用函数

    Test.cpp:

    void Fun();  // 函数定义

    4、C/C++ 编译 cpp 文件是从上往下编译,所以 main 函数里面调用其他函数时,如果其他函数在 main 函数的下面,则要在 main 函数上面先声明这个函数。或者把 main 函数放在最下面,这个不仅限于 main 函数,其他函数的调用都是如此。被调用的函数要在调用的函数之前声明

    5、注意

    用 extern 声明外部变量是不能进行初始化:

     
  • 相关阅读:
    抽取幸运观众
    随机产生139开头的电话号码
    脚本同步服务器系统时间
    判断网页是否存活
    nginx 添加到环境变量中
    spring boot helloworld
    IDEA 2019.3.3 Maven配置
    Window IDEA ULTIMATE 2019.3.3 安装&配置
    centos 7 Jenkins版本升级
    window 10 vscode+vue配置
  • 原文地址:https://www.cnblogs.com/gkh-whu/p/11457211.html
Copyright © 2011-2022 走看看