JimOrange 发表于 2024-1-25 17:20:11

结贴--感谢各位网友解答---关于变量声明的问题

本帖最后由 JimOrange 于 2024-1-26 12:14 编辑

事情回顾:按照现代编程语言编写代码,发现在mian函数调用过其它函数(如:fun)后再定义其它变量一律报错。
解决方案:只要保证在函数(如:fun)调用前定义/声明变量就可以了。(只对同一“生命周期”有效,比如在while里面定义变量不会影响到fun函数的编译)
本人鄙见,可能不太严谨,如有疏漏,望大伙见谅!

=======================历史记录===============



创建一个函数,然后调用这个函数。之后再定义变量就报错,各种修改都不行,实在莫名其妙!!! 大伙儿有遇到过吗?{:4_181:}
没有调用函数就编译通过,



===============更新====================
原以为不能在main函数定义变量,只能在main函数之前,结果看了@冲哥视频,他的怎么就可以定义变量在main函数呢?(注意看他之前是有函数声明的)


不为别的,只为知道个所以然。{:4_187:}

















_奶咖君_ 发表于 2024-1-25 17:22:49

C51 支持的C语言版本不支持 这样使用。
变量必须定义在函数开头

LAOXU 发表于 2024-1-25 17:28:22

前面一个 子函数 fun() { ; } 内要加 ;

后来一个 主函数 main() 没有返回值; 用 void main()试试 .

21cnsound 发表于 2024-1-25 17:31:06

main中一般是要包含while(1)的

_奶咖君_ 发表于 2024-1-25 17:49:31

LAOXU 发表于 2024-1-25 17:28
前面一个 子函数 fun() { ; } 内要加 ;

后来一个 主函数 main() 没有返回值; 用 void main()试试 . ...

话说楼主这个不是 语法问题么,,C251里支持C99语法了么?{:4_267:}

JimOrange 发表于 2024-1-25 17:59:57

LAOXU 发表于 2024-1-25 17:28
前面一个 子函数 fun() { ; } 内要加 ;

后来一个 主函数 main() 没有返回值; 用 void main()试试 . ...


一样的~{:4_187:}

JimOrange 发表于 2024-1-25 18:00:25

_奶咖君_ 发表于 2024-1-25 17:49
话说楼主这个不是 语法问题么,,C251里支持C99语法了么?

???这不是最简单的C吗?

JimOrange 发表于 2024-1-25 18:09:20

_奶咖君_ 发表于 2024-1-25 17:22
C51 支持的C语言版本不支持 这样使用。
变量必须定义在函数开头

谢谢~ 有没有具体一点,

我定义在函数里面也可以,是不是只要定义了全局函数,以后所有的变量都只能在全局定义?{:4_187:}

rengran 发表于 2024-1-25 18:44:33

我也遇到过,变量定义必须定义在一个函数的开头,不能放在调用、赋值等语句后,c语言标准的问题,它这样规定,keil就这样进行检测,不符合就编译不通过

嵌入式之路 发表于 2024-1-25 19:08:27

你第一个截图的警告是因为你定义了一个方法 但是你没有调用。 这个可以忽略

你第二个的问题是,定义的variable 没有放到函数体的开头。 希望可以帮到你谢谢!
页: [1] 2 3
查看完整版本: 结贴--感谢各位网友解答---关于变量声明的问题