报错信息: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语言变量声明问题——变量定义一定要放在所有执行语句/语句块的最前面吗?...相关推荐

  1. c语言中字符串型文件名,C语言中变量名的命名规则

    1.严格采用阶梯层次组织程序代码: 各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行.要求相匹配的大括号在同一列,对继行则要求再缩进4格.例如: 2.提示信息字符串的位置 在程序 ...

  2. C语言入门教程||C语言 文件读写||C语言 预处理器

    C语言 文件读写 本章我们将介绍 C 程序员如何创建.打开.关闭文本文件或二进制文件. 一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节.C 语言不仅提供了访问顶层的函数,也提供了底层 ...

  3. 华中科技大学c语言期末考试题,华中科技大学C语言期末考库剖析.docx

    华中科技大学C语言期末考试题库试题及答案汇总 1.设int a=12,则执行完语句a+=a-=a*a后,a的值是__D____. A.552 B.264 C.144 D.-264 知识点:算术表达式 ...

  4. c语言程序设计实验报告2,C语言程序设计实验报告2.docx

    C语言程序设计实验报告2.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该 ...

  5. 上海大学c语言程序设计,上海大学2009-2010年度C语言程序设计秋季学期试卷.doc

    (091)上海大学200-2010年学期试卷 200.11 课程名:程序设计课程号:学分:5应试人声明: 我保证遵守<上海大学学生手册>中的<上海大学考场规则>,如有考试违纪. ...

  6. C语言变量声明问题——变量定义一定要放在所有执行语句/语句块的最前面吗?

    参考网址:http://www.cnblogs.com/web-HCJ/p/4468689.html 报错信息:error C2065: 'salary' : undeclared identifie ...

  7. c语言中外部变量的使用方法,C语言外部变量的使用以及erxtern的用法

    网上有很多帖子问C语言中extern的用法,而且回答的详细程度各尽不同. 所以我就像写一篇博文来谈谈我对extern的看法,不一定十分恰当,只当大家共勉. 变量定义性声明和引用性声明 变量的声明有两种 ...

  8. C语言函数大全--g开头的函数(下)

    C语言函数大全 本篇介绍C语言函数大全–g开头的函数(下) 17. getmodename 17.1 函数说明 函数声明 函数功能 char * getmodename(int mode_name); ...

  9. c语言浮点型常量表示平均数_数据类型与常量、变量解析

    C语言入门参考-第五章-数据类型与常量.变量 常量即为在程序运行过程中值不会改变的量,常量又有字面常量与符号常量之分.符号常量使用#define预处理器指令与const关键字定义,(#define符号 ...

最新文章

  1. 图像特征检测描述(一):SIFT、SURF、ORB、HOG、LBP特征的原理概述及OpenCV代码实现
  2. oracle9i用expdp导出全库,Linux下Oracle 11g数据库全库自动备份(EXPDP)
  3. 外地买房,提取公积金
  4. 【论文阅读】Learning Traffic as Images: A Deep Convolutional ... [将交通作为图像学习: 用于大规模交通网络速度预测的深度卷积神经网络](1)
  5. ASP.NET MVC 中删除无用视图引擎
  6. 安徽省智慧政务新模式及典型应用
  7. CenterOS防火墙操作
  8. 1.2 Filters
  9. 相机姿态估计(三)--P3P
  10. 解决Ubuntu安装tensorflow报错:tensorflow-0.5.0-cp27-none-linux_x86_64.whl is not a supported wheel on this
  11. 工具:Wind金融终端使用指南
  12. matlab 稀疏矩阵 乘法,Matlab 矩阵运算
  13. Oracle获取日期大全(当月的第一天/后一天/上一天/最后一天/上个月这一天)
  14. OrCAD多页原理图器件按页编号的设置
  15. 洛谷1489 猫狗大战
  16. Android WebView重定向GOBACK问题
  17. HDU 6194 题解报告
  18. 00 C++ UML类图详解
  19. 关于SCI他引、自引、他引统计的小tip
  20. php 上传文件后缀名,对应PHP文件上传后缀名与文件类型

热门文章

  1. java web 酒店管理系统_GitHub - inkss/hotelbook-JavaWeb: 酒店管理系统-JavaWeb期末项目。...
  2. python程序员可以从哪些平台接单赚钱?看完我给你介绍的这几个平台,没学过python的你也能边学习边赚钱
  3. 随着XAG加密圈影响力不断增强,吸引全球最大行情站点CMC收录瑞波基因XAG
  4. Android设置网络访问权限
  5. 如何为区块链项目设计token机制
  6. PDF处理软件:无法加注释加高亮(解密PDF等)
  7. 麦穗理论,又名“秘书问题”(1/e处为最优分割点)
  8. 如何删除鼠标右键的显示的快捷键或功能?
  9. 机械图样解读——尺寸线及尺寸界线,尺寸标注
  10. pycharm运行报错:Process finished with exit code -1073741515 (0xC0000135)