【虚幻4】浅析UE4中的C++
生活随笔
收集整理的這篇文章主要介紹了
【虚幻4】浅析UE4中的C++
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
版權聲明:本文為CSDN博主「趁著頭發多我想做游戲」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_37658157/article/details/125296949
摘要:虛幻4中的C++是“魔改”過的,到處可見的宏編程會增加初學者的理解成本,本文主要是記錄一下自己的學習過程以及遇到的難題。
目錄
- C++的基礎知識點
- 1. 宏定義
- 2. 指針(TODO)
- UE4中的C++(TODO)
C++的基礎知識點
1. 宏定義
參考鏈接:C++宏定義詳解
可以理解為簡單的字符串替換,如 #include <xxx.h> 實際上是把頭文件 xxx.h的內容展開,然后替換到聲明處而已。注意看下面的例子:
// xxx.h int a = 1; int b = 2;以下兩段代碼是等效的:
int func() {#include "xxx.h"return a + b; } int func() {int a = 1;int b = 2;return a + b; }注意宏替換是簡單的字符串替換,不會進行任何運算。比如想用宏定義一個求平方數的函數,以下的宏定義就是錯誤的:
#define area(x) x*x void main() {int y = area(2+2);//本該輸出16,實則輸出8printf("%d",y); }上述程序本該輸出16,實則輸出8,因為宏定義實際上會替換成下面的代碼:
void main() {int y = 2+2*2+2;printf("%d",y); }正確的宏定義如下所示:
#define area(x) ((x)*(x))注意最外層的括號不能丟掉,否則在計算除法時又會出錯了:
#define area(x) (x)*(x) void main() {int y = area(2+2)/area(2+2); //本該輸出1,實則輸出16//實際上替換成了 int y = (2+2)*(2+2)/(2+2)*(2+2);printf("%d",y); }2. 指針(TODO)
UE4中的C++(TODO)
由于C++沒有反射和垃圾回收機制,UE封裝了一套以宏為基礎的反射與垃圾回收架構。
UPROPERTY:
UFUNCTION:
UCLASS:
USTRUCT :
GENERATED_BODY:
總結
以上是生活随笔為你收集整理的【虚幻4】浅析UE4中的C++的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++中数字和字符的转换
- 下一篇: A+B for Matrices 及