如何解决功能指针是否有宏? UE4 C ++
我在ue4 c ++中创建了一个函数指针,但不知道我可以/应该将哪个宏用于头文件中的指针。 (诸如UPROPERTY()或UFUNCTION()之类的东西
为什么我什至要使用宏?由于存在垃圾回收,据我所知,gb仅在变量/函数具有宏时才起作用。
btw,函数指针调用是否像普通函数调用一样执行?
header.h代码:
typedef void (AWeaponGun::*FireTypeFunctionPtr)(void);
FireTypeFunctionPtr PtrFireType;
UFUNCTION()
void FireLineTrace();
file.cpp代码:
void AWeaponGun::BeginPlay()
{
PtrFireType = &AWeaponGun::FireLineTrace;
}
void AWeaponGun::Tick(float DeltaTime)
{
(this->*PtrFireType)();
}
解决方法
函数和函数指针没有分配和释放,因此在这种情况下您不需要垃圾收集器,因此不需要任何UE4宏(...如果仅考虑垃圾收集器)。 / p>
关于性能,函数指针的性能很可能会稍差一些,因为它增加了一个变量,并且需要其他指令才能到达该函数。但是在某些情况下,编译器可能能够优化某些差异。 您需要检查两种情况下创建的汇编代码,以确保确定。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。