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



我试图用 C 语言的共用体来实现 Base64 编码,为什么失败了? 第1页

  

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

用了好几个编译器,结果都是33 9 54 24.

应该就像下面答案用反汇编看的,位域和一般结构体成员在内存中分布不同,会自动按照当前字节序排列而导致错误。

直接把两个结构体改为d, c, b, a的顺序就对了。

位域这个东西是依赖于实现的,一般情况下都不怎么推荐用。

你这个问题在StackOverflow有人回答过了。




  

相关话题

  是否存在那种,已经复杂到无法继续有效维护的软件?如果没有,哪些是最接近的? 
  最让你伤心的bug是什么? 
  上网时,为什么感觉现代人除了我全都很懂编程或计算机? 
  如何评价《王垠:C 编译器优化过程中的 Bug》? 
  CodeBlocks 的强大之处在哪里? 
  作为一名程序员,我这属于什么水平? 
  用汉字作为变量名和函数名有什么问题? 
  如何评价C语言让数组退化为指针的设计? 
  对于同一段代码,循环次数有限且已知,do和for之中哪一个的效率更高?为什么? 
  为什么 Java 只有值传递,但 C# 既有值传递,又有引用传递,这种语言设计有哪些好处? 

前一个讨论
日本08年经融危机是怎么解决的?
下一个讨论
如何看待漫画《进击的巨人》最终话「加页」部分的情报?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利