变量/函数的声明/定义

1)      声明

告诉编译器这个名字的存在:变量名和函数名。

 

 

2)      定义

分配存储空间。对于变量是分配变量所表示数据的大小,对于函数会分配生成函 数代码所占的空间。

 

 

3)      声明和定义可以是一起的

int a;当编译器没有在前面发现a时,就声明和定义了a

 

 

4)      声明可以有多处,而定义只能有一个,否则链接时会出现重复定义的错误。

5)      声明函数时,函数名不能和数据成员名同名

6)      所有的声明都可以有多个,除了以下:

l       静态变量 (其实这是定义)

l       类成员函数

 

以下声明可重复,举例如下:

l       类声明           class Person;

l       结构声明 struct Persion

l       函数声明        void PrintName();

l       类型                typedef int* IntPointer

l       外部声明        extern int value;

l       友员声明        friend class Person;

l       命名空间        using std::cout;

 

7)      extern

extern变量用于声明变量, 表示变量在别的文件定义或者本文件后面定义。对于函数来说,没必要用extern,一个函数只要不带{}就是声明。

 

 

8)      extern “C” int Func(int a, int b);

它告诉编译器,按照C的标准定函数名,因为C++默认是按照一定标准命名函数的,比如_Func_int_int。这是为了C++写出来的程序可以兼容C编译器。

 

可以同时指定一堆函数:

extern “C”

{

void Func(int,int)

int Func2(float, int);

#include A.h //函数声明
}

 

 

9)      指针的声明/定义

int* pA, pB, pC; 只有pA是指针,其他两个是int

如果想这样写,可以用typedef int* IntPointer

IntPoint pA, pB, pC;

 

 

10)  解决include 同一头文件引起的外部链接错误

l       如果在头文件定义数据结构,而这个头文件被多个CPP文件引用,那么就会出现重复定义的错误

l       解决

#ifndef Header_FileName

#define Header_FileName

//头文件内容

#endif

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值