C++定义与声明介绍

C++定义与声明介绍

本文包括:变量声明和定义、函数的声明和定义、extern关键字介绍。

变量声明和定义

变量在使用前就要被定义或者声明。

在C++中,变量的声明(Declaration)语法格式如下:

extern数据类型 变量名;

其中,数据类型表示变量的类型,例如整型、浮点型、字符型等;而变量名则是用来标识变量的名称。

变量的定义(Definition)既包含了声明的功能,也包括了对变量所需内存空间的分配。通过定义变量,我们不仅告诉编译器变量的存在和类型,还为变量分配了内存以用于存储数据。

在C++中,变量的定义语法格式如下:

数据类型 变量名 [= 初值];

其中,数据类型表示变量的类型,例如整型、浮点型、字符型等;变量名则是用来标识变量的名称。通过赋值操作符=可以给变量赋初值。

C++声明和定义的区别

定义分配存储空间,而声明不会。

①变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。

②变量声明:用于向程序表明变量的类型和名字。

③定义也是声明:当定义变量时我们声明了它的类型和名字。

④extern关键字:通过使用extern关键字是声明变量名而不定义它。extern告诉编译器变量在其他地方定义了。

下面示例说明:

int i; //定义,定义也是声明

int i=5; //定义,定义也是声明

extern int i; //声明

需要注意的是,如果声明有初始化值,就被当作定义,即使前面加了extern。例如:

extern double pi=3.1416; //定义,定义也是声明

顺便提示,对于同一个变量,只能有一个定义,但是可以在多个文件中进行声明。如果有多个定义,那么就会导致重定义错误。

在多文件中使用的变量都需要有与定义分离的声明。在这种情况下,一个文件含有变量的定义,使用该变量的其他文件则包含该变量的声明(而不是定义)。

除了单个变量的定义外,还可以同时定义多个同类型的变量,通过逗号分隔它们的名称,并可选择性地进行初始化。例如:

int c = 0, d, e = 1;  // 定义三个整型变量c、d和e,其中c和e被初始化为0和1,d未被初始化

函数的声明和定义

函数的声明是通知编译器函数名称、参数数量和类型以及函数返回类型,但是不提供函数的实现。例如:

int Max(int x, int y);

在上面的代码中,函数名为 Max,返回类型为 int 、参数为 int x,int y

函数定义

函数的定义包括函数体以及函数的参数类型、返回类型和函数名。在函数定义中,程序员定义要执行的代码,以便在程序中调用该函数。是为函数分配内存,例如:

int Max(int x, int y) {

    return x > y ? x : y;

}

函数声明和定义区分

函数只要有实现(存在函数体 {  } )即为定义,否则为声明。可以这样理解:函数声明是说明函数是什么,函数定义是说明函数做什么。

顺便提示,如果函数需要在多个文件中使用,则应该在一个文件中定义该函数,并在另外的文件中声明它,这样编译器才能正确的链接函数的定义和声明。

extern关键字

在C++中使用extern关键字来声明常量和函数的示例:

声明头文件 abc.h,内容如下:

extern const int MAX_VALUE; // 声明常量MAX_VALUE
extern void showMessage(); // 声明函数showMessage

实现文件 abc.cpp,内容如下:

#include "abc.h"
const int MAX_VALUE = 100; // 定义并初始化常量MAX_VALUE

#include <iostream>
void showMessage() {   // 定义函数showMessage
    std::cout << "Hello, World!" << std::endl;
}

在测试文件中demo.app使用"abc.h"文件中常量和函数,内容如下:

#include "abc.h"
#include <iostream>

int main() {
    std::cout << "Max value: " << MAX_VALUE << std::endl; // 使用常量MAX_VALUE
    showMessage(); // 调用函数showMessage
    return 0;
}

在这个示例中,我们在abc.h文件中使用extern关键字声明了一个常量MAX_VALUE和函数showMessage,然后在abc.cpp文件中定义常量MAX_VALUE和函数showMessage。在测试文件中demo.app使用了这些中常量和函数。

要使用Dev-C++编译和运行带有自定义头文件的C++源代码的步骤如下:
打开Dev-C++,创建一个新项目。
项目类型选Basic页中的Console Application,并为项目起一个名称
在项目中,选择“文件”->“新建”->“源文件”,
添加abc.h、abc.cpp、demo.cpp文件

参考

C++定义与声明 区别https://blog.csdn.net/sjxbf/article/details/6310150

C++将函数声明放在头文件中的示例https://blog.csdn.net/cnds123/article/details/132214317

猜你喜欢

转载自blog.csdn.net/cnds123/article/details/132379954