در CPP بهتره از دیتا تایپ String استفاده کنیم یا نوع داده های ویندوزی مثل LPCSTR و داده های دیفالت C ؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۱۲۱ نفر آنلاین
۴ عضو و ۱۱۷ مهمان در سایت حاضرند

در CPP بهتره از دیتا تایپ String استفاده کنیم یا نوع داده های ویندوزی مثل LPCSTR و داده های دیفالت C ؟

0 امتیاز
41 بازدید
سلام
من دارم برنامه نسبتا بزرگی مینویسم که کلا سیستمیه و استفاده خیلی زیادی از Win API داره، حالا این سوال برام پیش امده واسه کارهای رشته ای بهتره از همون نوع string خود CPP استفاده کنم و با یه .C_Str به نوع رشته ای دیفالت سی و ویندوز تبدیل کنم یا از اول نوع سی و ویندوز رو استفاده کنم.

 

لطفا اگه تجربه اشو دارین مزایا و معایب رو بگین.

 

من از VC++ 2015 استفاده میکنم Character Set پروژه هم پیشفرض به Use Unicode Character Set تغییر دادم(به خاطر استفاده زیاد api و سیستمی بودن برنامه اگه به صورت ئیشفرض همه چی unicode باشه در سرعت برنامه تاثیر داره).

با تشکر
سوال شده شهریور 4, 1394  بوسیله ی R0b3rtX99 (امتیاز 54)   3

1 پاسخ

0 امتیاز
با کلاس string براحتی می تونید با رشته کار کنید با مقدار کد کمتر.اگر هم نیاز به unicode دارید از wstring استفاده کنید و در ضمن استفاده از unicode در شرایط عادی تاثبری رو کارایی برنامه نداره باید دید که شما قصد دارید چه کری انجام بدید.
پاسخ داده شده شهریور 4, 1394 بوسیله ی مصطفی ساتکی (امتیاز 16,777)   17 25 66
ممنون
در مورد WString ما چیزی شبیه TCHAR نداریم ؟؟؟


یونیکد به این خاطر در سرعت برنامه تاثیر داره که در ویندوز حتی با صدا زدن نسخه ANSI توابع API یه بار دیگه نسخه Unicode شون صدا زده میشه یعنی حداقل دوتا Call برای هر تابع بدون در نظر گرفتن روند تبدیل ANSI به Unicode.
تاثیر خاصی نداره حالت عادی مگر این که برنامتون کلا text processing باشه که فضای بیشتری که یونیکد می گیره تاثیر بزاره روی سرعت اجرا !
سوالتون هم خیلی کلیه بستگی به توابع داره در کل ۲ تا function call زمان خاصی نمی گیره نسبت به logic خود برنامه ! و خب خیلی وقت ها که inline میشن و حذف میشه .
کلا چیزی نیست که تاثیر خاصی داشته باشه فرقی نمی کنه .
...