Ske*_*ith 4 c c++ arrays optimization
我有一大块代码,用于获取数组并完成它.在当前项目中,只有一个元素,所以不是将变量更改为char,而是将其声明为char数组[1].这样我就不需要修改我的代码并冒险添加任何错误,并且如果需求增长,可以轻松增加它.
它似乎编译好,但我已经对引擎盖下发生的事情感到好奇,我在浪费记忆吗?这是否会增加额外的处理时间,编译器会将它全部优化掉,所以如果我输入它会没有什么不同吗?
任何人都可以解释使用数组的任何可能的缺点是这样的.
我使用c和c ++,它们之间有什么不同吗?
听起来像是一个好策略,没有任何缺点.你绝对不会在C或C++中浪费内存.大小为1的数组占用的内存与相同类型的变量占用的内存相同.
编译器可能会生成显微效率较低的代码,但这确实不值得担心.
标准规定,您可以获取不是数组的对象的地址,并将其视为大小为1的数组(因此您可以将指针指向前端).
请参阅C++ 11标准的第5.7.4节:
出于这些运算符的目的,指向非阵列对象的指针与指向长度为1的数组的第一个元素的指针的行为相同,其中对象的类型为其元素类型.