`

C++声明和定义

阅读更多
内容主要来至http://topic.csdn.net/t/20060122/14/4530411.html
int main(int argc, char *argv[])
{
    int i;
    return 0;
}


int i;   这个里边隐藏了不少东西,已经声明和定义了。


一个声明就是一个定义,除非
  • 它声明了一个没有详细说明函数体的函数
  • 它包含一个extern定义符并没有初始化或函数体
  • 它是一个包含在一个类之内的数据成员的声明
  • 它是一个类的声明
  • 它是一个typedef的声明
  • 它是一个包含静态数据成员的声明


一个定义就是一个声明,除非
  • 它定义了一个静态成员函数
  • 它定义了一个成员函数



定义:申请内存空间的语句;
声明:即定义以外、不申请内存空间的语句,说成是声明。


“声明”向计算机介绍名字,它说,“这个名字是什么意思”。
而“定义”为这个名字分配存储空间。
无论涉及到变量时还是函数时含义都一样。
无论在哪种情况下,编译器都在“定义” 处分配存储空间。
定义也可以是声明。


在C++中,函数声明就是给函数取名,指定函数的参数和返回值
比如int   fun(int,int);   //以分号结束,它告诉编译器,“就这些,这里没有函数定义”
函数定义看起来像函数声明,但是它还有函数体,函数体是一个用大括号扩起来的语句集。大括号表示这段代码的开始和结束。
比如:int   fun(int   length,int   width)   {   ...   }



声明是变量或者函数地址的“标签”,而定义是给变量或者函数分配相应的地址。


声明顾名思义就是先告诉下编译器有个“家伙”叫这个名字,但是不知道那“家伙”死哪玩去了;
定义就是告诉编译器那“家伙”的名字以及它的特长(就是指函数体,具体实现什么代码);
extern它告诉编译器 这“家伙”来自国外的(也就是说他的内容在另外的文件)
分享到:
评论

相关推荐

    C++函数声明和定义

    C++编程语言中,函数声明和定义是两个关键的概念,它们在程序的编译和链接过程中扮演着不同的角色。理解这两个概念对于编写大型、模块化的C++程序至关重要。 首先,函数声明(Function Declaration)主要是告诉...

    c++ 类的声明和定义

    C++类的声明和定义 C++中的类是对象的抽象类型,用于定义对象的共性和特征。类的声明和定义是学习C++的开始阶段会遇到的问题,对于理解C++的基本概念非常重要。 一、类和对象的关系 在C++中,每个对象都属于一个...

    C语言和C++在声明和定义之间的区别是什么

    头文件的正确使用对于避免重复定义和提高代码的可重用性至关重要。 #### 示例 下面是一个简单的示例,演示了C++中声明和定义的使用: **example.h** ```cpp #ifndef EXAMPLE_H #define EXAMPLE_H class MyClass ...

    C++_关于声明,定义,类的定义,头文件作用

    ### C++中的声明与定义 在C++编程中,理解**声明**与**定义**的概念是非常重要的,这对于正确地组织代码、避免错误以及提高代码的可读性和可维护性都有非常大的帮助。 #### 1. **声明** - **概念**:声明主要用来...

    C++函数的声明和定义.pdf

    C++函数的声明和定义 C++函数是软件开发中非常重要的一部分,函数的声明和定义是C++函数的两个基本概念。在本文中,我们将详细介绍函数的声明和定义,包括函数原型、函数头、函数体、形式参数、实际参数等概念,并...

    深入分析C++中声明与定义的区别

    声明和定义有时是同时存在的。 如int a; extern int b=1;  只有当extern中不存在初始化式是才是声明。其他情况既是定义也是声明。  但是在下列情况下,声明仅仅是声明: 1:仅仅提供函数原型。如void func...

    c++\实验2 C++函数的定义与使用.

    实验二C++函数的定义与使用的目的是学习函数的定义、函数的使用和函数重载,掌握函数的声明、定义和使用,理解函数参数的传递和C++系统函数的调用。 实验设备包括计算机、Windows操作系统和VC++6。 实验内容和步骤...

    C++类变量声明

    在C++编程语言中,类(Class)是创建对象的基础,它定义了一组数据和操作这些数据的方法。类变量,也称为成员变量或属性,是类的一部分,它们存储类实例的状态信息。本教程将深入探讨C++类变量的声明、初始化、访问...

    C++函数的声明和定义[归纳].pdf

    C++函数的声明和定义[归纳].pdf

    c与c++头文件兼容宏定义

    本文将详细探讨如何通过宏定义和其他技巧来实现C和C++头文件之间的兼容性。 #### 关键术语解释 1. **`__cplusplus`**:这是一个预定义的宏,在C++编译环境中会被自动定义。通过检测是否存在`__cplusplus`,我们...

    c++ 中类外部定义函数

    c++ 基础 类外定义函数 调用函数 基础

    C++中的extern声明变量详解

    从内存分配角度来说,声明和定义的区别在于声明一个变量不会分配内存,而定义一个变量会分配内存。一个变量可以被声明多次,但是只能被定义一次。 基于以上前提,我们可以把声明和定义类比为指针和内存的关系。我们...

    C++的头文件转换为delphi定义

    最后,对于包含C++对象实例的传递,通常会使用COM或者.NET接口来实现跨语言的交互,因为这两种技术提供了标准的跨语言接口定义和生命周期管理。 总的来说,将C++的头文件转换为Delphi定义是一项复杂的工作,涉及到...

    C/C++语言中全局变量重复定义问题的解决方法

    宏定义、结构体定义、函数声明以及全局变量定义放到一个head.h头文件中 函数的定义放到head.cpp中 main函数放到main.cpp中 然而却报错了,提示xxx变量在*.obj文件中已定义 问题出现的原因 为什么会出现这种...

    c/c++中变量的声明和定义深入解析

    不管是函数还是变量的声明 ,都是...因此声明不一定是定义,定义一定就是定义,还可以包含声明。但是下面的这种肯定只是声明:extern int a ; 因此: “声明”为编译服务,用于类型检查 ;“定义”在运行时会分配空

    C++编程中变量的声明和定义以及预处理命令解析

    关于C++变量的声明和定义 我们已经知道,一个函数一般由两部分组成:声明部分和执行语句。 声明部分的作用是对有关的标识符(如变量?函数?结构体?共用体等)的属性进行说明。对于函数,声明和定义的区别是明显的,...

    解决C++中重定义的方法总结

    如果在C++代码中使用了C库,可能会遇到C风格和C++风格的结构体定义冲突。C++允许C风格的结构体,但它们在链接阶段可能会出现问题,特别是当C库使用了不同的结构体定义时。在这种情况下,可以将C风格的结构体转换为...

Global site tag (gtag.js) - Google Analytics