VS2010优化器的全局指针和全局引用之间的最大区别是什么?为什么参考资料没有解决?
typedef unsigned char byte_t;
typedef unsigned short word_t;
struct byte_reg_t
{
byte_t low;
byte_t high;
};
union word_reg_t
{
word_t value;
byte_reg_t part;
};
word_reg_t r16;
byte_t& low_ref = r16.part.low;
byte_t* const low_ptr = &r16.part.low;
#define SPLIT() _asm nop;
int main()
{
low_ref = 4;
SPLIT()
byte_t a = r16.part.low;
SPLIT()
byte_t b = low_ref;
SPLIT()
byte_t c = *low_ptr;
SPLIT()
return a+b+c;
}
Run Code Online (Sandbox Code Playgroud)
使用Assembly Output在Release-Mode中编译产生此结果
;byte_t a = r16.part.low;
mov cl, BYTE PTR ?r16@@3Tword_reg_t@@A
;byte_t b = low_ref; …Run Code Online (Sandbox Code Playgroud) 更新 1 - 我可以使用 Javascript 让它工作 - 但这似乎有点未优化(激活时 qmlscene.exe 的负载从 2-3% 到 30%) - 当模型更改时完成重新创建(它不会增长) ),这是唯一的方法还是有更“声明性”的风格可用?
如何将 PathLine 添加到基于模型的 ShapePath?
import QtQuick.Shapes 1.15
import QtQuick 2.15
Shape {
ListModel {
id: myPositions
ListElement { x: 0; y:38 }
ListElement { x: 10; y: 28 }
ListElement { x: 20; y: 30 }
ListElement { x: 30; y: 14 }
}
ShapePath {
strokeColor: "black"
strokeWidth: 1
fillColor: "transparent"
startX: 0
startY: 0
PathLine …Run Code Online (Sandbox Code Playgroud)