参考网址:http://www.cnblogs.com/web-HCJ/p/4468689.html

报错信息:error C2065: 'salary' : undeclared identifier

1
2
3
4
5
6
7
8
9
#include <stdio.h>
void main(){
printf("我的成绩是100分!");//不使用变量
int salary;//使用变量
salary = 100;
printf("我的成绩是%d分!",salary);
return 0;
}

问题根源:编译器问题——C89和C99

C89规定,在任何执行语句之前,在块的开头声明所有局部变量。

在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。

变量声明放在前面就不报错了······

1
2
3
4
5
6
7
8
9
#include <stdio.h>
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)就可以了

1
2
3
4
5
6
7
8
9
#include <stdio.h>
int main(void ){
int salary;//使用变量
salary = 100;
printf("我的成绩是100分!");//不使用变量
printf("我的成绩是%d分!",salary);
return 0;
}

应该是语言的数据类型的问题吧???是不是呢?大神何处在~

(完,可待续)

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

  1. C语言中变量声明和变量定义的区别

    本文转载至CSDN博客JeanCheng 变量声明和变量定义 变量定义:用于为变量分配存储空间,还可为变量指定初始值.程序中,变量有且仅有一个定义. 变量声明:用于向程序表明变量的类型和名字. 定义也 ...

  2. Go 学习笔记(6)— 变量定义、变量声明、变量作用域

    1. 变量定义 Go 语言变量名由字母.数字.下划线组成,其中首个字符不能为数字.声明变量的一般形式是使用 var 关键字: var varName dataType [= value] Go 语言和 ...

  3. c语言staticint的作用,C语言 static 声明静态变量?大佬原来用它干这事!

    原标题:C语言 static 声明静态变量?大佬原来用它干这事! C语言可变参数只会用算啥本事?看我来抽丝剥茧干翻它! 高手在写代码的时候,会特别注重的一点就是,对外的方法对外,不对外的方法和数据,都 ...

  4. python公共变量声明_Python变量声明

    繁星coding 好的,首先要做的事情.Python中没有"变量声明"或"变量初始化"这样的东西.简直就是我们所谓的"任务",但应该只是称之 ...

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

    报错信息:error C2065: 'salary' : undeclared identifier #include void main(){ printf("我的成绩是100分!&quo ...

  6. 变量声明与变量定义的区别

    1.变量定义 1.1.第一种方式 int a           定义变量但不初始化 创建一个变量,为这个变量分配一块int数据类型所占内存空间大小的内存空间并命名 1.2.第二种方式 int a = ...

  7. js php 变量声明,javascript变量声明实例分析_javascript技巧

    本文实例讲述了javascript变量声明的方法.分享给大家供大家参考.具体分析如下: js中使用一个变量之前应当先声明.变量使用关键字var来声明. 如果未在var声明语句中给变量指定初始值,则该变 ...

  8. c语言goout函数,Go语言函数声明(函数定义)

    函数构成了代码执行的逻辑结构,在Go语言中,函数的基本组成为:关键字 func.函数名.参数列表.返回值.函数体和返回语句,每一个程序都包含很多的函数,函数是基本的代码块. 因为Go语言是编译型语言, ...

  9. Go 学习笔记(70)— Go 变量声明、变量初始化、值类型变量赋值、指针类型变量赋值

    1. 变量声明 要单纯声明一个变量,可以通过 var 关键字,如下所示: var s string 该示例只是声明了一个变量 s,类型为 string,并没有对它进行初始化,所以它的值为 string ...

最新文章

  1. 妙用postman系列——postman建组、分享
  2. 五子棋html游戏代码与算法介绍
  3. 帮你排雷Jmeter分布式性能测试那些坑
  4. 随机森林RF中的特征重要性的计算公式VIM
  5. 【转载】详解 Spring 3.0 基于 Annotation 的依赖注入实现
  6. Stumpwm的编译安装
  7. php lodop 实例,Vue使用lodop实现打印小结
  8. Python 字典初始化dict()和{}
  9. 为您的软件系统设计选择最佳的工具
  10. java finally在return_Java finally语句到底是在return之前还是之后执行?
  11. Twisted中的putChild和getChild
  12. 学UI设计就业难吗?
  13. 记一次惨烈的电话面试题
  14. 23个适合logo设计的常用英文字体
  15. Asp.Net Core报错System.Text.Json.JsonException: A possible object cycle was detected which is not supp
  16. NLP - 词法分析
  17. 大陆居民可以在香港汇丰银行开私人账户
  18. latex中的希腊字母
  19. 基于汇编语言的文本对比算法
  20. windows下 编写的Qt程序连接远程MySQL数据库

热门文章

  1. 深圳电大计算机等级考试报名时间2015,杭州2015下半年计算机等级考试报名
  2. amos看拟合度在哪里看_amos模型拟合度
  3. linux 安装docker
  4. C 语言结构体引用,引用 C 语言结构体学习
  5. MYSQL索引创建与删除
  6. singft 函数 matlab,(新)信号与系统MATLAB实验全.doc
  7. java lang保_java中lang包下的类都涉及哪几方面的
  8. thinkphp5 open_basedir 补充
  9. swoole 热重启
  10. ​四周第一次课(4月11日)lvm讲解