C\C++中声明与定义的区别
2024-08-26 13:00:16
声明和定义是完全同的概念,声明是告诉编译器“这个函数或者变量可以在哪找到,它的模样像什么”。而定义则是告诉编译器,“在这里建立变量或函数”,并且为它们分配内存空间。
函数声明与定义:
函数的声明如:int Add(int, int);函数声明就是给函数取名并指定函数的参数类型,返回值类型。值得注意的是,在C语言中,有一点跟C++不同,对于带空参数表的函数如:int func();在C中代表可以带任意参数(任意类型,任意数量),而在C++中代表不带任何参数。
函数的定义如:int Add(int a, int b){} 函数定义看起来跟函数声明很像,但是它有函数体,如果函数体中使用了参数,就必须为参数命名,这里大括号代替了分号的作用。
变量的声明如:extern int i; 在变量定义前加extern关键字表示声明一个变量但不定义它,这对函数同样有效,如:extern int Add(int a, int b);因为没有函数体,编译器必会把它视作声明而不是定义,extern关键字对于函数来说是多余的,可选的。
变量的定义如:int i;如果在此之前没有对i的声明,那么这里既是对它的声明也是对它的定义,编译器会为其分配对应的内存。
最新文章
- 安卓开发之ListAdapter(二)
- WCF学习笔记一
- yii2.0 Cache缓存
- SQL Server 2008 R2——学习/练习/错误/总结/搜集
- readLine读取socket流的时候产生了阻塞
- 24种设计模式--责任链模式【Chain ofResponsibility Pattern】
- nc命令
- iOS百度推送的基本使用
- 关于如何解决谷歌Chrome浏览器空白页的问题
- 如何使用Visual Studio 2013 开发PHP5.6项目
- redis高级实用特性(2)
- uml系列图(一)——与uml的第一次约会
- 【原】Spark 编程指南
- ubuntu 14.04 安装svn server (subversionedge )
- HDU - 1160 FatMouse's Speed 动态规划LIS,路径还原与nlogn优化
- SAP S/4 1610 IDES + HANA 2.0 安装
- 构造函数与getter和setter的区别
- [UE4]蓝图调试小心得
- eclipse启动tomcat内存溢出的解决方式
- apk中添加第三方so文件