问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

一个关于c语言static的具体实例问题

发布网友 发布时间:2022-10-03 21:11

我来回答

5个回答

热心网友 时间:2023-10-11 18:32

win下 my(5)是先执行的。 你可以搜索下printf的实现方式。 printf是从左往右入栈, 然后从栈顶开始计算。也就是从右往左计算。另外 static变量是被存储在静态数据区的,而静态数据区变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。所以第二次进这个函数的时候那个static int count=a是没有任何效果的。所以就得到了5+4=9,你可以改成staitc int count; count=a,这样的话就能得到正确结果了

热心网友 时间:2023-10-11 18:32

C语言默认函数调用规则是cdecl,参数从右到左压栈。先执行my(5)再执行my(4)

---------------
收回上面的话
C函数参数压栈顺序是从右向左,但求值顺序是未定义的。所以my(4)有可能比my(5)先执行。即虽然my(4)有可能先执行,但my(5) 的结果先压栈。

sunchy12345678说的是对的,gcc从-ansi到-std=gnu1x都编译不过,可见标准从来都没允许这种写法:
t.c: 在函数‘my’中:
t.c:4:8: 错误:初始值设定元素不是常量
static int count=a;
^

最后请问楼主这问题的出处?

热心网友 时间:2023-10-11 18:33

这是printf函数的问题,这个函数在执行时候,是将欲输出的变量进行压栈操作,执行的时候是从右向左,所以先执行my(5),得到10,所以第二个输出10,然后是my(4),而static变量只初始化一次,所以这次忽略count = a,所以count是在执行my(5)时的5,所以返回的是9

热心网友 时间:2023-10-11 18:33

。。。GCC报错
卧槽LS又来误导了。。
函数参数的求值顺序是未指定的,my(5)不一定比my(4)先计算。

热心网友 时间:2023-10-11 18:34

很正常啊?先算的my(5),再算的my(4),逗号表达式嘛!先右边后左边
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电热水器的镁棒怎么更换的 全国心理学专业大学排名有哪些 比较好的心理学大学排名 水彩如何用来画动漫人物,先绘制线稿,然后再上色 敞蓬甲壳虫? 打游戏想要买什么配置的电脑玩游戏电脑配置什么最重要 led常规温度为多少正常吗 手机能耐多少度高温 清远哪些初中比较好? 从法律角度来看疫苗案长生生物公司违反了哪些法律规定 同类型指针赋值失败 tpyedef 的使用 补水修复霜是早上用还是晚上用啊 魔兽世界战士T的 招架、格挡、躲闪哪个重要啊? WOW里 招架这个属性到底有什么作用? 如何做到密切联系群众 面试 联系群众就是要深入群众,换位思考,将心比心.怎么理解 什么是密切联系群众 内涵 魔兽世界 招架/躲伞/格挡 的区别 你好`看了你回答的WOW招架问题,我想问一个关于布胖招架的问题! 怎样打开密友功能 打开密友功能步骤介绍 魔兽世界关于昏迷躲闪,招架,格挡问题 魔兽世界战士的招架怎么堆? wow,关于招架~~老鸟进 魔兽世界战士招架问题 魔兽世界防御招架躲闪求解 魔兽世界怀旧服招架对于法系怪有用吗- 问一问 立春后不建议单穿卫衣了,那到底如何穿才能尽显时髦显瘦又气质呢? WOW躲闪和招架区别 招架的魔兽世界中的“招架” 声卡没声音怎么办? 声卡没有声音怎么办 声卡没有声音该怎么办 环瓜氨酸肽抗体ccp400是高吗 - 信息提示 英雄联盟有了战队怎么在游戏中显示?详细点,我看百度上说什么点信息同步,我没找到 玛卡可以泡在葡萄酒里吗 玛卡可以泡在葡萄酒里? 刚做个梦,梦见一颗树根冒烟,扒开伸手进去感觉到冷,这个梦预示着什么吗? 全景效果图怎么补天? 吧里哪位大神有全景图ps补天的详细教 玛卡能泡红酒吗 葡萄酒加白米酒泡玛卡可以喝吗 怎么进自己微信公众号平台服务器修改代码 “中国银行信用卡”微信公众号修改信用卡单位邮编操作路径是什么? 葡萄酒能泡玛卡吗,怎么泡? 玛卡能不能泡到酒里喝 玛卡泡水喝的同时可以喝自制葡萄酒吗 红酒可以和玛咖同吃吗? 山竹汁弄手上的清洗方法 山竹汁弄手上如何清洗 玛咖可以用红酒泡着喝吗?