我看书时看到一句话:C++规定所有使用的变量和函数需要先声明,后使用。但我平常不是定义一个变量就使用了吗?哪里声明了? 这时定义等于声明function_name(){int i ; 这既是定义也是声明} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看这段文字吧.(《C++编程思想》): 首先,必须知道“声明”和“定义”之间的区别,因为这两个属于在全书中会被确切地使用。“声明”向计算机介绍名字,他说,“这个名字是什么意思”。而“定义”为这个名字分配存储空间。无论涉及到变量时还是函数时含义都一样。无论那种情况下,编译器都在“定义”出分配存储空间。对于变量,编译器确定这个变量占多少存储空间,并在内存中产生存放他们的空间。对于函数,编译器产生代码,并为之分配存储空间。函数的存储空间中又一个由使用不带参数表或带地址操作符的函数名产生的指针。 定义也可以是声明。如果该编译器还没有看到过名字A,程序员定义int A,则编译器马上为这个名字分配存储地址。 …… 函数声明时,参数名可以给出也可以不给出。而定义时他们是必须的。这在C语言中确实如此,但在C++重病不一定。 明白了吗? 同意 virginsoldier(迦庙)声明和定义是有区别的:比如: VC提供的类库和运行库,在头文件里声明了,定义是在dll里。而你自己写的函数实现部分叫定义,你如果在定义之前使用就要声明。申明就是调用方式。 VS2010的comboBox组件垂直滚动条 关于dlelet [] 出错的问题 MFC中如何利用Excel ChartWizard生成图表?(在线等) 一个简单c程序vc编译时说malloc free没定义,为什么? 求助一个多文档线程的问题 为什么我打印预览里的打印按牛失效? 分数可以加,大家来看一下 寻找有志于学习精通的朋友 MFC中,如何在按钮上加图标 怎样获得与文件类型相关的小图标? 请问谁有vc++调用matlab函数的经验,编译后是否可脱离matlab环境使用。请提供信息。 怎样刷新数据库啊,我会马上给分的呀 如何用Vc安全地终止进程?最好有源代码。
首先,必须知道“声明”和“定义”之间的区别,因为这两个属于在全书中会被确切地使用。“声明”向计算机介绍名字,他说,“这个名字是什么意思”。而“定义”为这个名字分配存储空间。无论涉及到变量时还是函数时含义都一样。无论那种情况下,编译器都在“定义”出分配存储空间。对于变量,编译器确定这个变量占多少存储空间,并在内存中产生存放他们的空间。对于函数,编译器产生代码,并为之分配存储空间。函数的存储空间中又一个由使用不带参数表或带地址操作符的函数名产生的指针。
定义也可以是声明。如果该编译器还没有看到过名字A,程序员定义int A,则编译器马上为这个名字分配存储地址。
……
函数声明时,参数名可以给出也可以不给出。而定义时他们是必须的。这在C语言中确实如此,但在C++重病不一定。 明白了吗?
声明和定义是有区别的:
比如:
VC提供的类库和运行库,在头文件里声明了,定义是在dll里。
而你自己写的函数实现部分叫定义,你如果在定义之前使用就要声明。申明就是调用方式。