小编WuF*_*uFa的帖子

关于一级,二级和三级价值

一流的价值可以

  1. 作为一个论点传递
  2. 从子程序返回
  3. 分配到变量.

第二类值可以作为参数传递.

三等价值甚至不能作为论据传递.

为什么这些东西应该这样定义?据我所知,"可以作为参数传递"意味着它可以被推入运行时堆栈;"可以被分配到变量"意味着它可以被移动到内存的不同位置; "可以从子程序返回"几乎具有"可以分配给变量"的相同含义,因为返回的值总是被放入已知地址,因此第一类值完全是"可移动"或"动态",第二类value是一半"可移动",第三类值只是"静态",例如C/C++中的标签,只能通过goto语句来解决,除了"goto"之外你不能对该地址做任何事情..我的理解有意义吗?或者这三种价值究竟意味着什么?

programming-languages terminology

22
推荐指数
2
解决办法
1万
查看次数

用于结构化数据的fread和fwrite的替代方案

这本书开始的Linux程序设计(第三版)说:

"请注意,建议不要将fread和fwrite用于结构化数据.部分问题是用fwrite编写的文件可能在不同的机器之间不可移植."

这究竟是什么意思?如果我想编写便携式结构化数据读取器或写入器,我应该使用哪些调用?直接系统调用?

c portability

5
推荐指数
1
解决办法
1747
查看次数