声明和定义是完全同的概念,声明是告诉编译器“这个函数或者变量可以在哪找到,它的模样像什么”。而定义则是告诉编译器,“在这里建立变量或函数”,并且为它们分配内存空间。

  函数声明与定义:

  函数的声明如: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的声明,那么这里既是对它的声明也是对它的定义,编译器会为其分配对应的内存。

  

最新文章

  1. 安卓开发之ListAdapter(二)
  2. WCF学习笔记一
  3. yii2.0 Cache缓存
  4. SQL Server 2008 R2——学习/练习/错误/总结/搜集
  5. readLine读取socket流的时候产生了阻塞
  6. 24种设计模式--责任链模式【Chain ofResponsibility Pattern】
  7. nc命令
  8. iOS百度推送的基本使用
  9. 关于如何解决谷歌Chrome浏览器空白页的问题
  10. 如何使用Visual Studio 2013 开发PHP5.6项目
  11. redis高级实用特性(2)
  12. uml系列图(一)——与uml的第一次约会
  13. 【原】Spark 编程指南
  14. ubuntu 14.04 安装svn server (subversionedge )
  15. HDU - 1160 FatMouse's Speed 动态规划LIS,路径还原与nlogn优化
  16. SAP S/4 1610 IDES + HANA 2.0 安装
  17. 构造函数与getter和setter的区别
  18. [UE4]蓝图调试小心得
  19. eclipse启动tomcat内存溢出的解决方式
  20. apk中添加第三方so文件

热门文章

  1. shell 多行注释
  2. 【纯css】响应式图片列表
  3. mvc架构
  4. zookeeper3.3.6 伪分布式安装
  5. mac包管理器Homebrew安装命令
  6. sqlserver事务隔离小结
  7. Yii2 事务操作
  8. 解决select2在bootstrap的modal中默认不显示的问题
  9. jQuery简单入门
  10. [原创]Centos7 从零整合LNMP一体包