找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

为什么变量赋值必须写在函数里。

查看数: 2586 | 评论数: 10 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-1-14 09:27

正文摘要:

为什么

回复

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

面向函数的语言,所有语句,必须在函数内。
ID:155507 发表于 2023-1-15 08:37
函数外定义变量时可以同时赋值。
要是想在函数外赋值,要定义变量的时候进行初始化赋值


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

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表