日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【虚幻4】浅析UE4中的C++

發布時間:2023/12/9 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【虚幻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)

  • UE的特殊宏
    由于C++沒有反射和垃圾回收機制,UE封裝了一套以宏為基礎的反射與垃圾回收架構。
  • UPROPERTY:

    UFUNCTION:

    UCLASS:

    USTRUCT :

    GENERATED_BODY:


    總結

    以上是生活随笔為你收集整理的【虚幻4】浅析UE4中的C++的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。