百科问答小站 logo
百科问答小站 font logo



C语言开发单片机为什么大多数都采用全局变量的形式? 第1页

  

user avatar   zhang-hao-72 网友的相关建议: 
      

水平太差呗。。。

好好写规范点,上层逻辑和底层硬件分开,可复用性做好,多花点工夫,值得的。

别说几千行,几百行也应该严格要求自己。


user avatar   haozhi-yang-41 网友的相关建议: 
      

1:这些程序的最早版本可能改写自汇编,后来就形成自己的风格和习惯了。

2:有些时候,这些全局变量是和一些寄存器、外部io等绑定的。它们本身就是全局的,而且在读这些数据时,也需要直接读最新数据而不是在内存的某个地方的某个副本。

3:某些场景下,全局的状态数量可能会很多。在单片机寄存器数量较小,或者在调用层级很深的函数自然需要访问它们的时候,如果传参那就要层层压栈传。反复的压栈对于性能不太好的单片机来说也是个压力。


user avatar   pansz 网友的相关建议: 
      

其实有个恰当的比喻解释这个,就好像问以前99平的房子是二房,为什么现在会有人把99平的房子做成三房,买大点不行吗?

答案:因为大了,比较费钱。


user avatar   gnadil 网友的相关建议: 
      

这两个游戏都有自己的问题。但严重程度完全不一样。

赛博朋克最大的问题是人力不够,没有人手把愿景在限期内做出来,导致后期狂砍。但从已有的成品来看,CDPR是完全有人才有能力把东西做出来的,只不过没时间做。光影效果,已有的垂直城市设计,以及主线和很多支线任务的演出都有毫不输巫师3的气质,尤其是日本城浮空平台那关,无论是游戏流程还是画面还是音乐,都把类似银翼杀手2047的那种气氛和感受做到了极致。有人说CDPR的人才都跑了,或者CDPR傲娇了开始放水,这并不客观。2077确实是个半成品,主机优化的问题尤其严重,但你关注已经完成的部分,用高配置PC玩,其质量并未令人失望,依然是巫师3的水准。

2077就像是一个优等生忘了做背后的几题的考卷,开天窗导致不及格,但已经做了的题目还是正确率极高的。

谈到E3的demo,单从画面上讲你很难说它缩水了。只不过CDPR没告诉你想要E3画面,就得上3080+光线追踪。。。

我猜想没有光追的话,游戏在大多数情况下也是可以达到光追的效果的,只不过人工工作量会很大,有些地方需要离线烘培,而有些地方需要人工设置虚拟光源。CDPR可能发现项目后期工作量太大搂不住了,就上了光追这个大杀器。。。


至于无人深空,现在口碑很好,但我要不客气地讲,这个游戏到了今天依然是垃圾,只配卖$19.95,打折的时候卖2.95的那种。

Hello工作室自始自终都没有把初始愿景实现的技术能力。

你可以看无人深空进入大气层的技术实现。先是一段飞船进入大气层摩擦发红的特效,然后可以看见地形通过一种非常粗糙、视距很近的情况下刷新出来,并且刷出来的地貌和太空中看到的地貌完全不同。所以从头到尾,hello工作室都没有类似精英危险和星际公民的无缝行星登陆技术。

无人深空更新了十几次,并没有触动这个游戏除了机械刷就没有任何深度的本质。这是一个极其无聊的游戏。但它刷了两年的DLC,玩家也就给他点面子,没功劳有苦劳。它每次更新我都会进游戏看看,但玩不了半小时就会放弃。一是实在无聊,二是它美术设计和渲染水平有限,色彩及其刺眼。比如在母船机库里,到处都是亮瞎狗眼的点状光源,但这些光源不会照亮周围的任何东西,看的时间长了有种不带护目镜看焊接的流泪效果。你说更新了那么久,这么简单的问题都不解决,有什么用呢。游戏中随处可见低级设计的痕迹,比如说有很多行星上有一种可以卖钱的球,这种球没有任何贴图,只有亮瞎眼的纯白色材质,在HDR效果下极其刺眼,但它又不是个光源,放在地上不会照亮周围任何东西。这种打开Blender就存盘的建模初手垃圾素材居然也能放在游戏里,真是活久见。

所以无人深空就像是一个学渣冒充学霸,把期望提得无限高,却每题都答错结果接近0分,被骂,然后花了漫长的时间在那里订正,一题一题的改,最后终于接近30分了,然后获得了大家的赞赏,全然忘记了它改了那么久依然是不及格。

无人深空的贴图我就不贴了,首发的时候真是纯垃圾,基本上是2008年魔兽世界首发的那个水准。现在也依然是垃圾,开个HDR看着眼睛都疼。




  

相关话题

  该如何优雅地黑 C++? 
  在中国象棋中,最少用多少只马才能控制住整个棋盘?(马控棋盘)? 
  为什么大多数中国高校不直接使用英文原版教材教学? 
  为什么微软不出一门像 Go 或者 Rust 的跨平台系统级语言? 
  深入讨论N卡A卡色彩真的有区别吗? 
  蒙特卡罗算法是什么? 
  如何看待博客园的整改公告? 
  很厉害的程序员都读过CSAPP,SICP,操作系统,算法导论,编译原理这些书吗? 
  有没有可能运用人工神经网络将一种编程语言的代码翻译成任意的另一种编程语言,而不经过人工设计的编译过程? 
  现在是大一计算机相关的学生,程序员的工作是不是每天都是敲一天的代码呢? 

前一个讨论
编译器是如何实现C/C++中的const的功能?
下一个讨论
如何看待美国无人机空袭导致阿富汗平民死亡?





© 2024-12-22 - tinynew.org. All Rights Reserved.
© 2024-12-22 - tinynew.org. 保留所有权利