2016-09-12 21 views
0

當我製作鍵盤事件與當地CGEventRef,我注意到,即使它不是一個指針,你可以「編輯」,其具有的功能特性,比如:本地CGEventRef是否被視爲指針?

CGEventRef eventRef = CGEventCreateKeyboardEvent(....); 
CGEventSetFlags(eventRef, ...); 
CGEventSetType(eventRef, kCGEventKeyDown); 

然後你Post事件。我知道如果你做這樣的事情;

Player p; //assume Player has an x property and a y property (both public) 
p.x = 100000; p.y = -431; 
void changePlayerPosition(Player player__, int x, int y){ 
    player__.x = x; player__.y = y; 
} 
changePlayerPostion(10, 43); 
std::cout << p.x << p.y; //prints x=1000000 y=-431 even though we tried to edit the values to 10 and 43 in the function 

即使我們在changePlayerPosition函數中編輯它們,值也不會改變。我知道你可以通過在Player &player__這個論據中得到地址player__來解決這個問題。

這是一個例子。我想我的真正的問題是,CGEventRef eventRef如何編輯flag, type, etc.而未傳遞指針或地址,如CGEventSetFlags, CGEventSetType, etc.等功能非常感謝!

P.S一些代碼將是有益的

回答