|
|
1
14
我写这篇文章是为了帮助我进行音频操作。这不是最快的,但对我很有效。)
|
|
|
2
18
根据需要,我会为它使用一个位域。
或者,如果分离更容易,只需使用3个字节(字符)。 顺便说一句,您在问题中提到的两个用例通常都使用32位整数。在音频处理的情况下,通常在加载音频块时转换为32位整数(最好是浮点数,以防止使用定点或整数数学时出现溢出情况),因为您不会同时将整个文件保存在内存中。 对于图像数据,人们往往只使用32位整数,而忽略所有alpha 8 alpha位,或者如果您处理的是压缩格式,那么最好还是将它们作为字符指针来处理,因为所有通道都是分开的。无论如何,这将是一个性能/内存权衡,因为分别写入一个int通常比三个chars快;但是它将占用25%的内存。 像这样的打包结构是编译器特有的。但是,在Visual Studio中,您可以执行以下操作使结构正好24位。
|
|
|
3
6
使用小于整数(32位或64位,具体取决于您的体系结构)的任何对象都是不理想的。较小数据类型(短等)的所有CPU操作都是使用整数算法完成的。必须完成与CPU之间的转换,从而减慢应用程序的速度(即使只是一点点)。 我的建议是:将它们存储为32(或64位)整数,以提高整体速度。当需要进行I/O时,您必须自己进行转换。 至于操作音频数据,有许多库可以为您处理I/O—除非您想开始学习如何存储PCM等—以及其他DSP功能。我建议你使用那些图书馆中的一个。 |
|
|
4
0
不-你真正能做的就是:
这有助于提高代码/意图的可读性/明显性,但不会对范围或存储空间施加任何限制。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |