C++ c/c++;通过指针进行最快可移植访问的数据类型?
我需要实现一个大的动态多维位图(如位图),速度和可移植性都很重要。我的第一个选择是C++ c/c++;通过指针进行最快可移植访问的数据类型?,c++,c,pointers,primitive-types,C++,C,Pointers,Primitive Types,我需要实现一个大的动态多维位图(如位图),速度和可移植性都很重要。我的第一个选择是int(doh!),但是可能long或者long或者甚至char更好?我认为你不应该太麻烦,细节取决于编译器、优化标志和处理器 不要忘记,过早优化是邪恶的 如果您真的在意,请将代码设置为下划线整数类型的模板,或者使用typedef来命名它。您可能需要查看以下答案:它指出最快的类型取决于处理器体系结构。因此,在32位体系结构上,32位整数速度最快,而在64位体系结构上,32位整数速度最快。要寻找的答案是Stephen
int
(doh!),但是可能long
或者long
或者甚至char
更好?我认为你不应该太麻烦,细节取决于编译器、优化标志和处理器
不要忘记,过早优化是邪恶的
如果您真的在意,请将代码设置为下划线整数类型的模板,或者使用typedef来命名它。您可能需要查看以下答案:它指出最快的类型取决于处理器体系结构。因此,在32位体系结构上,32位整数速度最快,而在64位体系结构上,32位整数速度最快。要寻找的答案是Stephen Canon的答案每个平台(硬件和编译器)都有点不同,因此很难确定一种数据类型比另一种更可取。也就是说,除了说最好使用与平台相同位大小的数据类型。这就是为什么我喜欢创建一个单独的types.h文件,在其中为当前平台定义自己的数据类型。例如,我将对每种数据类型执行如下操作:
#if defined(INT8)
#undef INT8
#endif
#define INT8 char
跨哪些平台的可移植性?不同的字长?不同的指令集?不同的编译器供应商?不同的词尾?太模糊了,不是一个真正的问题。这是C还是C++?你可以期待<代码>长Lo/<代码>和<代码> char < /C> >要慢一些。在哪些平台上实现可移植性?win/*nix(sunos、macos、linux)/异国情调(嵌入式*nix)不同的字长?是的,不同的指令集?是的,不同的编译器供应商?是的,不同的词尾?是的,可能的副本