1
11
除了基本问题 Ned Batchelder 指出,一个更微妙的问题是,分配器必须返回一个地址,该地址对于正在分配的任何对象都是正确对齐的。在某些平台(x86)上,除了性能问题外,这可能无关紧要,但在许多平台上,这是一个完全的交易破坏者。
我还得表演
你应该把帕伦斯放在
事实上,我会把它作为一个枚举。 您可以通过返回一个内存块来保持分配器的简单性,该内存块对于系统上的任何基本数据类型都是正确对齐的(可能是8字节对齐):
|
2
6
有几个问题:
|
3
2
首先,正如其他人已经指出的,您正在块的中间声明变量,这只在C99中允许,但在C89/90中不允许。也就是说,我们必须得出结论,您使用的是C99。
其次,您要用k&r样式定义函数(没有参数类型),但同时以后不声明参数类型。这样你就依赖于“隐式int”规则,这在C99中是非法的。也就是说,我们必须得出结论
不
使用C99。这已经是与“第一”部分的矛盾了。(此外,习惯上使用
未签名的
表示“对象大小”概念的类型。
第三,在
请决定你要用什么语言,我们就从那里开始。 |
Community wiki · C中有哪些耗时的操作? 1 年前 |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |