c语言变量声明放在开头,C语言变量声明问题——变量定义一定要放在所有执行语句/语句块的最前面吗?...
报错信息:error C2065: 'salary' : undeclared identifier
#include
void main(){
printf("我的成绩是100分!");//不使用变量
int salary;//使用变量
salary = 100;
printf("我的成绩是%d分!",salary);
return 0;
}
问题根源:编译器问题——C89和C99
C89规定,在任何执行语句之前,在块的开头声明所有局部变量。
在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。
变量声明放在前面就不报错了······
#include
void main(){
int salary;//使用变量
salary = 100;
printf("我的成绩是100分!");//不使用变量
printf("我的成绩是%d分!",salary);
return 0;
}
不同风格利弊
变量在函数开头定义:便于修改
变量就近定义:便于阅读
变量在块语句的开头定义:有的临时变量放在语句块开头,可以不用在函数开头定义,并且在使用完毕后释放空间,可以这么做,但不要无故添加花括号来提高代码的结构。
要达到最大的兼容跨平台性,还是放在函数开头定义吧
使用哪种方式,看实际情况+个人喜好!
我个人是比较喜欢就近定义的,觉得比较方便一点。
可是,现在使用的VC6.0,编译器可能是C89的,所以不得不用开头定义。
顺便提一提:该文件的后缀名为.c
在网上查了一下,有许多说法,列举一二(意思大同小异)
1.源文件保存为.c格式的话变量只能定义在最前,若保存为.cpp格式的话,变量定义较为灵活,不用在最前。
2.在C语言里,变量只能在函数的开头处声明和定义。在函数里要用到的变量必须要在开头处声明定义。声明定义的前面不能有任何其他非声明定义的语句。全局变量在函数体的外部声明定义。而C++里(.CPP文件是按C++标准编译的),只要在用到变量前对该变量进行声明定义就行了,位置不做特别要求。而C语言的就定了在一个模块里(函数、循环体等)先声明一切所需变量后才能进行相关操作的规定。
然而,把后缀名改为.cpp后,还是报错
void main()改为int main(void)就可以了
#include
int main(void ){
int salary;//使用变量
salary = 100;
printf("我的成绩是100分!");//不使用变量
printf("我的成绩是%d分!",salary);
return 0;
}
应该是语言的数据类型的问题吧???是不是呢?大神何处在~
(完,可待续)
c语言变量声明放在开头,C语言变量声明问题——变量定义一定要放在所有执行语句/语句块的最前面吗?...相关推荐
- c语言中字符串型文件名,C语言中变量名的命名规则
1.严格采用阶梯层次组织程序代码: 各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行.要求相匹配的大括号在同一列,对继行则要求再缩进4格.例如: 2.提示信息字符串的位置 在程序 ...
- C语言入门教程||C语言 文件读写||C语言 预处理器
C语言 文件读写 本章我们将介绍 C 程序员如何创建.打开.关闭文本文件或二进制文件. 一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节.C 语言不仅提供了访问顶层的函数,也提供了底层 ...
- 华中科技大学c语言期末考试题,华中科技大学C语言期末考库剖析.docx
华中科技大学C语言期末考试题库试题及答案汇总 1.设int a=12,则执行完语句a+=a-=a*a后,a的值是__D____. A.552 B.264 C.144 D.-264 知识点:算术表达式 ...
- c语言程序设计实验报告2,C语言程序设计实验报告2.docx
C语言程序设计实验报告2.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该 ...
- 上海大学c语言程序设计,上海大学2009-2010年度C语言程序设计秋季学期试卷.doc
(091)上海大学200-2010年学期试卷 200.11 课程名:程序设计课程号:学分:5应试人声明: 我保证遵守<上海大学学生手册>中的<上海大学考场规则>,如有考试违纪. ...
- C语言变量声明问题——变量定义一定要放在所有执行语句/语句块的最前面吗?
参考网址:http://www.cnblogs.com/web-HCJ/p/4468689.html 报错信息:error C2065: 'salary' : undeclared identifie ...
- c语言中外部变量的使用方法,C语言外部变量的使用以及erxtern的用法
网上有很多帖子问C语言中extern的用法,而且回答的详细程度各尽不同. 所以我就像写一篇博文来谈谈我对extern的看法,不一定十分恰当,只当大家共勉. 变量定义性声明和引用性声明 变量的声明有两种 ...
- C语言函数大全--g开头的函数(下)
C语言函数大全 本篇介绍C语言函数大全–g开头的函数(下) 17. getmodename 17.1 函数说明 函数声明 函数功能 char * getmodename(int mode_name); ...
- c语言浮点型常量表示平均数_数据类型与常量、变量解析
C语言入门参考-第五章-数据类型与常量.变量 常量即为在程序运行过程中值不会改变的量,常量又有字面常量与符号常量之分.符号常量使用#define预处理器指令与const关键字定义,(#define符号 ...
最新文章
- 图像特征检测描述(一):SIFT、SURF、ORB、HOG、LBP特征的原理概述及OpenCV代码实现
- oracle9i用expdp导出全库,Linux下Oracle 11g数据库全库自动备份(EXPDP)
- 外地买房,提取公积金
- 【论文阅读】Learning Traffic as Images: A Deep Convolutional ... [将交通作为图像学习: 用于大规模交通网络速度预测的深度卷积神经网络](1)
- ASP.NET MVC 中删除无用视图引擎
- 安徽省智慧政务新模式及典型应用
- CenterOS防火墙操作
- 1.2 Filters
- 相机姿态估计(三)--P3P
- 解决Ubuntu安装tensorflow报错:tensorflow-0.5.0-cp27-none-linux_x86_64.whl is not a supported wheel on this
- 工具:Wind金融终端使用指南
- matlab 稀疏矩阵 乘法,Matlab 矩阵运算
- Oracle获取日期大全(当月的第一天/后一天/上一天/最后一天/上个月这一天)
- OrCAD多页原理图器件按页编号的设置
- 洛谷1489 猫狗大战
- Android WebView重定向GOBACK问题
- HDU 6194 题解报告
- 00 C++ UML类图详解
- 关于SCI他引、自引、他引统计的小tip
- php 上传文件后缀名,对应PHP文件上传后缀名与文件类型
热门文章
- java web 酒店管理系统_GitHub - inkss/hotelbook-JavaWeb: 酒店管理系统-JavaWeb期末项目。...
- python程序员可以从哪些平台接单赚钱?看完我给你介绍的这几个平台,没学过python的你也能边学习边赚钱
- 随着XAG加密圈影响力不断增强,吸引全球最大行情站点CMC收录瑞波基因XAG
- Android设置网络访问权限
- 如何为区块链项目设计token机制
- PDF处理软件:无法加注释加高亮(解密PDF等)
- 麦穗理论,又名“秘书问题”(1/e处为最优分割点)
- 如何删除鼠标右键的显示的快捷键或功能?
- 机械图样解读——尺寸线及尺寸界线,尺寸标注
- pycharm运行报错:Process finished with exit code -1073741515 (0xC0000135)