内容主要来至[url]http://topic.youkuaiyun.com/t/20060122/14/4530411.html[/url]
int i; 这个里边隐藏了不少东西,已经声明和定义了。
一个声明就是一个定义,除非
[list]
[*]它声明了一个没有详细说明函数体的函数
[*]它包含一个extern定义符并没有初始化或函数体
[*]它是一个包含在一个类之内的数据成员的声明
[*]它是一个类的声明
[*]它是一个typedef的声明
[*]它是一个包含静态数据成员的声明
[/list]
一个定义就是一个声明,除非
[list]
[*]它定义了一个静态成员函数
[*]它定义了一个成员函数
[/list]
定义:申请内存空间的语句;
声明:即定义以外、不申请内存空间的语句,说成是声明。
“声明”向计算机介绍名字,它说,“这个名字是什么意思”。
而“定义”为这个名字分配存储空间。
无论涉及到变量时还是函数时含义都一样。
无论在哪种情况下,编译器都在“定义” 处分配存储空间。
定义也可以是声明。
在C++中,函数声明就是给函数取名,指定函数的参数和返回值
比如int fun(int,int); //以分号结束,它告诉编译器,“就这些,这里没有函数定义”
函数定义看起来像函数声明,但是它还有函数体,函数体是一个用大括号扩起来的语句集。大括号表示这段代码的开始和结束。
比如:int fun(int length,int width) { ... }
声明是变量或者函数地址的“标签”,而定义是给变量或者函数分配相应的地址。
声明顾名思义就是先告诉下编译器有个“家伙”叫这个名字,但是不知道那“家伙”死哪玩去了;
定义就是告诉编译器那“家伙”的名字以及它的特长(就是指函数体,具体实现什么代码);
extern它告诉编译器 这“家伙”来自国外的(也就是说他的内容在另外的文件)
int main(int argc, char *argv[])
{
int i;
return 0;
}
int i; 这个里边隐藏了不少东西,已经声明和定义了。
一个声明就是一个定义,除非
[list]
[*]它声明了一个没有详细说明函数体的函数
[*]它包含一个extern定义符并没有初始化或函数体
[*]它是一个包含在一个类之内的数据成员的声明
[*]它是一个类的声明
[*]它是一个typedef的声明
[*]它是一个包含静态数据成员的声明
[/list]
一个定义就是一个声明,除非
[list]
[*]它定义了一个静态成员函数
[*]它定义了一个成员函数
[/list]
定义:申请内存空间的语句;
声明:即定义以外、不申请内存空间的语句,说成是声明。
“声明”向计算机介绍名字,它说,“这个名字是什么意思”。
而“定义”为这个名字分配存储空间。
无论涉及到变量时还是函数时含义都一样。
无论在哪种情况下,编译器都在“定义” 处分配存储空间。
定义也可以是声明。
在C++中,函数声明就是给函数取名,指定函数的参数和返回值
比如int fun(int,int); //以分号结束,它告诉编译器,“就这些,这里没有函数定义”
函数定义看起来像函数声明,但是它还有函数体,函数体是一个用大括号扩起来的语句集。大括号表示这段代码的开始和结束。
比如:int fun(int length,int width) { ... }
声明是变量或者函数地址的“标签”,而定义是给变量或者函数分配相应的地址。
声明顾名思义就是先告诉下编译器有个“家伙”叫这个名字,但是不知道那“家伙”死哪玩去了;
定义就是告诉编译器那“家伙”的名字以及它的特长(就是指函数体,具体实现什么代码);
extern它告诉编译器 这“家伙”来自国外的(也就是说他的内容在另外的文件)