تفاوت C ++ بین "استفاده از ll = long long" و "typedef long long ll" چیست؟


پاسخ 1:

اولی نوع نام مستعار و دیگری تعریف نوع است.

نوع نام مستعار به سادگی جایگزین نوع در ترکیب منبع می شود.

یک typedef در واژگان انواع شناخته شده وارد می شود.

typedef می تواند انواع ایجاد کند ، در حالی که بند استفاده فقط اسم مستعار را برای یک نوع شناخته شده ایجاد می کند.

مثال شما یک تمایز بدون تفاوت است ، اما ممکن است برای انواع مرتبط مانند نشانگرها ، منابع و غیره به راحتی قابل ترجمه نباشد.

من توصیه می کنم از چنین نام مستعار یا typedef استفاده کنید زیرا بسیار غیرقابل اعتماد است و در حال حاضر گزینه های قابل قبولی زیادی وجود دارد ، مانند:

int64_t uint32_t

[| تو] intN_t

مرفه شده

int

شناور

با استفاده از cstdint می توانید این و همه ثابت MAX و MIN را دریافت کنید.

# شامل 

(stdint.h)


پاسخ 2:

تفاوت در معنی ندارد. استاندارد ([dcl.typedef]) می گوید:

یک نام typedef همچنین می تواند توسط بیانیه نام مستعار معرفی شود. شناسه پس از استفاده از كلمه كليدي ، به يك نام typedef تبديل مي شود و شناسه مشخصه اختياري پس از شناسايي به اين نام typedef مراجعه مي كند. این همان معنایی را دارد که گویی توسط شناسه typedef معرفی شده است.

اظهارنامه با ll = طولانی طولانی؛ یک اعلامیه مستعار است.