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

更新时间:2023-05-06 13:36:26 阅读: 评论:0

C 语⾔变量声明问题——变量定义⼀定要放在所有执⾏语句语
句块的最前⾯吗?
报错信息:error C2065: 'salary' : undeclared identifier
问题根源:编译器问题——C89和C99
C89规定,在任何执⾏语句之前,在块的开头声明所有局部变量。
在C99以及C++中则没有这个限制,即在⾸次使⽤之前,可在块的任何位置都可以声明变量。
变量声明放在前⾯就不报错了······
不同风格利弊
变量在函数开头定义:便于修改
变量就近定义:便于阅读
变量在块语句的开头定义:有的临时变量放在语句块开头,可以不⽤在函数开头定义,并且在使⽤完毕后释放空间,可以这么做,但不要⽆故添加花括号来提⾼代码的结构。
要达到最⼤的兼容跨平台性,还是放在函数开头定义吧
使⽤哪种⽅式,看实际情况+个⼈喜好!
我个⼈是⽐较喜欢就近定义的,觉得⽐较⽅便⼀点。
可是,现在使⽤的VC6.0,编译器可能是C89的,所以不得不⽤开头定义。
顺便提⼀提:该⽂件的后缀名为.c
在⽹上查了⼀下,有许多说法,列举⼀⼆(意思⼤同⼩异)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;}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;}
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;}

本文发布于:2023-05-06 13:36:26,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/98015.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:定义   变量   声明   开头   函数   问题   情况   列举
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图