标题: 为什么变量赋值必须写在函数里。 [打印本页]

作者: 李冬    时间: 2023-1-14 09:27
标题: 为什么变量赋值必须写在函数里。
为什么

51hei图片_20230114092627.png (10.96 KB, 下载次数: 65)

51hei图片_20230114092627.png

51hei图片_20230114092619.png (14.03 KB, 下载次数: 76)

51hei图片_20230114092619.png

作者: coody_sz    时间: 2023-1-14 12:49
不一定,函数外定义变量时可以同时赋值。
作者: simple_tt    时间: 2023-1-14 14:23
要是想在函数外赋值,要定义变量的时候进行初始化赋值,C语言本身就不允许你这种操作
作者: qqup    时间: 2023-1-14 15:12
变量赋值不一定要在函数中进行,如果在函数外赋值必须要在定义变量的时候同时赋值,也就说定义与赋值要合成一条语句。因为程序是在main函数顺序开始,需要哪个函数就会执行该函数,需要哪个变量就调用那个变量,若在本帖中图2所示中打印c2[0].b并不会得到22的值,因为在编译器看来你只是声明了该变量未对其赋值,因为程序没有执行赋值那条语句。
作者: angmall    时间: 2023-1-15 08:37
函数外定义变量时可以同时赋值。
要是想在函数外赋值,要定义变量的时候进行初始化赋值



作者: devcang    时间: 2023-1-15 09:18

面向函数的语言,所有语句,必须在函数内。
作者: panzishi123456    时间: 2023-1-15 11:08
写在函数外是全局变量,用完后不释放RAM,写在函数内是局部变量,退出函数就释放RAM,如果MCU的RAM不多,如只有128个字节,如果你定义的全局变量超过128字节,你的程序运行会出错。
作者: gt00888    时间: 2023-1-15 18:00
定义时初始赋值,重新赋值必须在函数内发生了运算,既定规则,没有道理可言
作者: 188610329    时间: 2023-1-15 21:40
所谓的函数外赋值,还是在函数内,无非在一个隐藏的函数,并被startup调用后赋值,从效率来讲,还不如在main函数赋值来的快。你仿真一下,看看哪个快就知道了。
作者: FrankJi    时间: 2023-1-18 11:24
因为c语言是基于函数的 ,只有函数里的代码才能被正常调用执行,在函数外的代码,如非特殊处理是没有机制去执行的(startup调用main是特例)。所以函数外只能定义变量,定义时可以赋初值,但不能单纯地赋值。
作者: hetingting    时间: 2023-1-18 16:56
来学习,结构体的赋值,不是非常懂,但没在外面赋值过。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1