رفتن به مطلب
جامعهٔ برنامه‌نویسان ایران

جستجو در تالارهای گفتگو

در حال نمایش نتایج برای برچسب های 'سی'.



تنظیمات بیشتر جستجو

  • جستجو بر اساس برچسب

    برچسب ها را با , از یکدیگر جدا نمایید.
  • جستجو بر اساس نویسنده

نوع محتوا


وبلاگ‌ها

چیزی برای نمایش وجود ندارد

چیزی برای نمایش وجود ندارد

تالارهای گفتگو

  • انجمن‌های آی او استریم
    • اخبار و اعلامیه‌های سایت
    • اسناد و قوانین مرجع
    • رویداد‌ها و جلسات
    • معرفی محصولات نوشته شده‌ بومی
    • مرکز نظرسنجی جامعه‌ی برنامه‌نویسان
    • مقالات و اسناد مشاوره‌ای
    • مرکز چالش برانگیز برنامه‌نویسان
    • رمز‌های موفقیت
    • ابزار‌ها و نرم‌افزارهای کاربردی برنامه‌نویسان حرفه‌ای
  • استارتاپی و کسب‌و‌کار
    • استارتاپ‌ها
    • سرمایه گذاری
    • شتاب دهنده‌ها
    • پارک‌های علم و فناوری و مراکز رشد
    • مصاحبه با استارت‌آپ‌ها
    • قوانین حقوقی
    • داستان‌های موفقیت
    • کارآفرینان و متخصصین
    • مشاوره اجرای کسب‌وکار
    • اخبار حوزه‌ی استارتا‌پی
    • آگهی‌های استخدامی
  • زبان‌های برنامه نویسی
    • برنامه نویسی در C و ‏++C
    • برنامه نویسی با Java
    • برنامه نویسی با JavaScript
    • برنامه نویسی با Go
    • برنامه نویسی با Python
    • برنامه نویسی با Delphi
    • برنامه نویسی با Ruby
    • برنامه نویسی با VB6
  • ابزار‌های ساخت و ساز
    • ابزار CMake
    • ابزار QMake
    • ابزار Qbs
    • ابزار Make و Autotools
  • طراحی و توسعه وب
  • طراحی و توسعه وب اپلیکیشن‌ها
    • طراحی و توسعه در Angular
    • طراحی و توسعه در React.JS
    • طراحی و توسعه در Vue.JS
  • طراحی و توسعه موبایل و اِمبِد‌ها و تلوزیون‌ها
    • برنامه نویسی تحت محصولات اپل
    • برنامه نویسی تحت محصولات گوگل
    • طراحی و توسعه تحت محصولات دیگر
  • برنامه‌نویسی سطح پایین و سیستم عامل‌ها
    • سیستم عامل‌های آزاد
    • سیستم عامل‌های تجاری
    • مباحث آموزشی مرتبط با سیستم‌عامل
  • شبکه و اینترنت
  • بانک‌های اطلاعاتی
  • برنامه نویسی تحت محصولات اپل
  • برنامه نویسی تحت محصولات مایکروسافت
  • طراحی و توسعه تجربه کاربری (UX) و رابط کاربری (UI)
  • درخواست انجام پروژه (ویژه)
  • سوالات و مباحث عامیانه
  • سطل آشغال

Product Groups

  • کتاب‌ها و مقالات آموزشی

دسته ها

  • علمی
  • استارتاپی
  • برنامه‌نویسی
    • زبان‌های برنامه نویسی
    • معماری‌ها
  • کامپایلر و مفسر
  • محیط‌های توسعه
  • طراحی و توسعه‌ی وب
  • مجوز‌های نرم‌افزاری
  • فناوری‌ها
    • پردازش تصویر
    • اینترنت اشیاء
    • پردازش ابری (Cloud Computing)
    • چند سکویی (Cross-Platform)
    • بیگ دیتا (Big Data)
    • هوش مصنوعی (AI)
    • سخت افزار
    • نرم‌افزار و اپلیکیشن
    • اینترنت و شبکه
    • رمزنگاری
    • امبد‌ها (Embedded)
  • طراحی
    • تجربه کاربری
    • رابط کاربری

دسته ها

  • عمومی
  • گرافیکی
  • شبکه و ارتباطات

دسته ها

  • کامپایلر‌ها
  • محیط‌های توسعه
  • کتابخانه‌ها
  • ماژول‌ها و پلاگین‌ها
  • محصولات بومی
  • کتاب‌ها و مقالات
  • زبان‌ها و ابزار‌ها
  • طراحی و گرافیک

جستجو در ...

نمایش نتایجی که شامل ...


تاریخ ایجاد

  • شروع

    پایان


آخرین بروزرسانی

  • شروع

    پایان


فیلتر بر اساس تعداد ...

تاریخ عضویت

  • شروع

    پایان


گروه


درباره من


شماره تلفن همراه


شناسه گیت‌هاب


شناسه لینکدین


شناسه پیام رسان


شهر


آدرس پستی

3 نتیجه پیدا شد

  1. کامبیز اسدزاده

    رونمایی از رابط‌کاربری جدید سونی پلی‌استیشن ۵

    همانطور که می‌دانید پلی‌استیشن ۵ به عنوان یک نسل جدیدی از کنسول بازی سونی معرفی شده است که رابط‌کاربری آن به شدت تغییر و بهبود یافته است. هر چیزی که در این محیط از پلی‌استیشن ۵ دیده می‌شود خط به خط و ریز به ریز آن، به لُطفِ کامپایلر Clang که اتفاقاً امروز هم نسخهٔ ۱۱ اون منتشر شد، و استاندارد ۱۷ از سی++ و به خصوص بحث نرم‌افزاری آن بر پایهٔ سیستم‌عامل FreeBSD ارائه شده است که متخصص‌ها در این باره خوب می‌دانند فری‌بی‌اِس‌دی به عنوان سریع‌ترین و پایدارترین نوع سیستم‌عامل‌های یونیکسی مطرح هستند. اگه شما کاربر عادی هستید، مثالی بزنیم تا بیشتر در جریان باشید: - سیستم‌عامل macOS و iOS بر پایهٔ سیستم‌عامل یونیکس (داروین) ساخته شده‌اند. - سیستم‌عامل اندروید بر پایهٔ لینوکس ساخته شده‌اند. از طرفی سیستم‌عامل کنسول مایکروسافت اِکس‌باکس بر پایهٔ هستهٔ ویندوز ۱۰ طراحی شده و در مقابل سیستم‌عامل پلی‌استیشن ۴ و همچنین ۵ از هستهٔ یونیکس فری‌بی‌اِس‌دی استفاده کرده که حرف‌های زیادی برای گفتن دارند. در بحث طراحی نسبت به نسخه‌های پیشین یک بهبود اساسی داشته چون تغییرات رابط‌کاربری در زمان PS4 نسبت به PS3 چنان چشم‌گیر نبوده است! اما الآن دیگر سونی واقعاً بر روی آن کار کرده است و دیگر خبری از آن ظاهر تکراری و حوصله بر وجود ندارد! پلی‌استیشن ۵ رابط کاربری کاملاً بازسازی شده‌ای نسبت به پلی‌استیشن ۴ دارد که با هدف دسترسی آسان به اطلاعات طراحی شده. یکی از ویژگی‌های این رابط کاربری گرفتن آپدیت‌های زنده است که کاربران مجبور به جستجو و صبر کردن برای مشاهده فعالیت‌های دوستان خود و مشاهده فعالیت‌های در دسترس در بازی‌ها نباشند. مارک سرنی دربارهٔ این موضوع گفته‌است «ما نمی‌خواهیم یک کاربر بازی را باز کند، ببیند که چه‌خبراست، و دوباره بازی را باز کند که ببیند چه خبر است!»! این ویژگی در همان داشبورد رابط کاربری اصلی پلی‌استیشن فراهم شده است و نیازی به ورود به داخل بازی جهت بررسی خبر‌های اخیر از آن ندارد! همچنین دیگر مواردی مانند پشتیبانی از ویژگی عقب‌گرد (یعنی پشتیبانی از اجرای بازی‌های پی‌اس ۴) در این سیستم ارائه شده است. رابط کاربری پلی استیشن 5 همواره با وضوح تصویر 4K واقعی و پشتیبانی کامل از HDR به نمایش درمی‌آید. سونی تلاش زیادی کرده است که بازیکنان در کمترین زمان ممکن بتوانند برنامه یا بازی مورد نظر خود را در رابط کاربری بیابند و اجرا کنند. همه‌ی برنامه‌ها نیز حالا بخشی از UI هستند و دیگر مثلا موقع وارد شدن به پلی استیشن استور احساس نمی‌کنید که تازه یک برنامه‌ی جدید باید از ابتدا اجرا شود. از طرفی SSD بسیار سریع و پردازندهٔ مرکزی دستگاه کاری می‌کنند که رابط کاربری همواره با سرعت قابل ‌توجه و به شکل روان مقابل بازیکن قرار بگیرد.
  2. همانطور که می‌دانید در زبان‌های برنامه‌نویسی از نوع کامپایلری، گزینه‌ها و تنظیماتی وجود دارند که به شما امکان این را می‌دهد تا رفتار کامپایلر (هم‌گردان) را تا حدی سفارشی سازی کنید. این امکان به کمک تنظیمات پرچم‌ها (فلگ‌ها) و برخی از گزینه‌ها قابل انجام است و انتخاب پرچم‌های مناسب برای کامپایلر می‌تواند مورد توجه قرار بگیرد. با توجه به دو مقاله‌ای که با عناوین زیر ارائه شده است، در این مقاله به جزئیات بیشتری نسبت به تنظیمات کامپایلر (هم‌گردان یا مترجم) می‌پردازیم که البته توصیه می‌کنم در صورت عدم آشنایی با تعاریف مربوطه و به خصوص روند ترجمهٔ کد‌ها و ساختار برنامه‌های نوشته شده توسط سی‌پلاس‌پلاس، بهتر است آن‌ها را بررسی کنید. در مثال زیر، نسخهٔ کامپایلر همراه با اطلاعات مربوط به آن، توسط گزینهٔ option در خط فرمان قابل دریافت است: gcc --version خروجی مربوطه می‌تواند نسبت به نسخهٔ کامپایلر به صورت زیر باشد: gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. در حالت پیش‌فرض تنظیمات کامپایلر به صورت خودکار انجام می‌شود. اما در صورتی که نیاز باشد برخی از درخواست‌ها توسط کامپایلر مورد توجه قرار بگیرد و یا برای دیگران آن را گوشزد کند، از این ویژگی‌ها استفاده می‌شود. در چنین شرایطی می‌تواند به کامپایلر بگوید که کاربر می‌خواهد کد را برای اشکال‌زدائی بهینه کند یا اینکه کاربر نمی‌خواهد هیچ بهینه‌سازی خاصی برای آن فعال شود. این عمل معمولاً در سراسر خط فرمان قابل استفاده است و به عنوان مکانیزمی برای دستورالعمل‌ برنامه برای انجام عملیاتی یا رفتاری به روش خاص عمل می‌کند. به طورکلی، گزینهٔ کامپایلر به عنوان یک عبارت بسیار حساس، برای خط فرمان است که برای تغییر عملکرد پیشفرض کامپایلر استفاده می‌شود. در اصل این گزینه‌ها برای کامپایل برنامهٔ شما اجبار نیستند، اما برای کمک به کنترل نبه‌های مختلف برنامه بسیار مفید خواهند بود. از جمله: تولید کد بهینه‌سازی فایل خروجی (نوع، نام، مکان) خواص پیوند‌-دهنده اندازه فایل اجرائی سرعت اجرایی اینکه نیاز باشد کدی را بهینه‌سازی کنید، و یا مسائلی را برای دیگران گوشزد کنید کاملاً سلیقه‌‌ای است و شما در روند توسعهٔ حرفه‌ای خود می‌توانید از این تکنیک استفاده کنید. ساده‌ترین کاربرد این تکنیک می‌تواند وادار کردن استفادهٔ کامپایلر از یک استاندارد مشخص شده باشد که در صورت پشتیبانی از آن چه به صورت عقب‌گرد و چه به صورت سوئیچ به استاندارد‌های اخیر کاربرد خواهد داشت. برای مثال، پرچم std نسخه یا استاندارد ایزو از سی‌پلاس‌پلاس را کامپایلر‌های رایجی مانند Clang و GCC مشخص می‌کند که به صورت زیر تعریف می‌شوند: -std=c++11 (ISO C++11) -std=c++14 (ISO C++14) -std=c++1z (ISO C++17) -std=c++20 (C++20 experimental) -std=gnu++ (ISO C++ with GNU extensions) معادل پرچم استاندارد در کامپایلر MSVC به صورت زیر است: /std:c++14 /std:c++17 /std:c++latest /std:c11 /std:c17 نکته، گزینهٔ /std از نسخهٔ ۲۰۱۷ به بعد از کامپایلر مایکروسافت در دسترس است. به صورت پیش‌فرض در این نسخه از کامپایلر این گزینه بر روی استاندارد ۱۴ تنظیم شده است. در صورت نیاز به ارتقاء آن به نسخهٔ ۱۷ طبق نمونه عمل کنید. همچنین طبق قوائد مایکروسافت استاندارد نهایی شده از آخرین ویژگی‌ها در کامپایلر تحت /std:c++latest قابل دسترس می‌باشد که در این لحظه شامل استاندارد ۲۰ می‌شود. گزینهٔ Verbosity به عنوان اِسم یا Verbose از نوعِ صِفَت به معنای دراز‌نویسی (بهتر است به معنای ارائه‌‌کنندهٔ اطلاعات بیشتر به آن توجه شود)، با کاراکتر W که به عنوان مخففی از Warning محسوب می‌شود قابل تنظیم است. بنابراین، پرچم‌های زیر برای اهداف مشخصی در نظر گرفته می‌شوند که توضیحات هر یک را در مقابل آن آورده‌ایم: پرچم -Wall با فعال شدن، تعداد زیادی از پرچم‌های هشدار دهندهٔ کامپایلر را به طور خاص و باهم روشن می‌کند که لیست آن به صورت زیر است: -Waddress -Warray-bounds=1 (only with -O2) -Warray-parameter=2 (C and Objective-C only) -Wbool-compare -Wbool-operation -Wc++11-compat -Wc++14-compat -Wcatch-value (C++ and Objective-C++ only) -Wchar-subscripts -Wcomment -Wduplicate-decl-specifier (C and Objective-C only) -Wenum-compare (in C/ObjC; this is on by default in C++) -Wenum-conversion in C/ObjC; -Wformat -Wformat-overflow -Wformat-truncation -Wint-in-bool-context -Wimplicit (C and Objective-C only) -Wimplicit-int (C and Objective-C only) -Wimplicit-function-declaration (C and Objective-C only) -Winit-self (only for C++) -Wlogical-not-parentheses -Wmain (only for C/ObjC and unless -ffreestanding) -Wmaybe-uninitialized -Wmemset-elt-size -Wmemset-transposed-args -Wmisleading-indentation (only for C/C++) -Wmissing-attributes -Wmissing-braces (only for C/ObjC) -Wmultistatement-macros -Wnarrowing (only for C++) -Wnonnull -Wnonnull-compare -Wopenmp-simd -Wparentheses -Wpessimizing-move (only for C++) -Wpointer-sign -Wrange-loop-construct (only for C++) -Wreorder -Wrestrict -Wreturn-type -Wsequence-point -Wsign-compare (only in C++) -Wsizeof-pointer-div -Wsizeof-pointer-memaccess -Wstrict-aliasing -Wstrict-overflow=1 -Wswitch -Wtautological-compare -Wtrigraphs -Wuninitialized -Wunknown-pragmas -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -Wvla-parameter (C and Objective-C only) -Wvolatile-register-var -Wzero-length-bounds برای مثال، با فعال‌سازی پرچم -Werror، هرگونه هشدار را به خطای تلفیقی تبدیل می‌کند. این کار باعث می‌شود خطاهای مربوط به کد‌های خطرناک را به گونه‌ای جلوه دهید که از کامپایل آن‌ها جلو‌گیری شود. کار‌های مشابه این مورد، به صورت پیش‌فرض در زبان‌های مانند Rust انجام می‌شود که از کد‌های دارای خطا و خطرناک برای کامپایل جلوگیری می‌کند. به کار گیری چنین پرچم‌هایی در کامپایلر سی++ می‌تواند خطاهای شامل هشدار رو به خطاهای غیر قابل کامپایل تبدیل کند. جهت تنظیم این پرچم در پروژهٔ خود کافی است در ابزار ساخت مورد نظر آن را اعمال کنید، به عنوان مثال در سی‌میک (CMake) به صورت زیر عمل کنید: SET (CMAKE_CXX_FLAGS "-Werror") و یا در QMake به شیوهٔ زیر می‌توانید این ویژگی را فعال کنید: QMAKE_CXXFLAGS += -Werror برای مثال، کد زیر در صورت فعال بودن این پرچم، کامپایل نخواهد شد. int myFunction() { //‌no return! } auto main() -> int { return 0; } خروجی این پیام به صورت زیر خواهد بود: error: no return statement in function returning non-void [-Werror=return-type] به معنای این ‌که هیچ بیانیه‌ای به عنوان عبارت بازگشتی در تابع مربوطه که از نوع غیر-باطل (non-void) است، وجود ندارد. بسیاری از این گزینه‌ها برای هدف خاصی در نظر گرفته می‌شوند که می‌توانید جزئیات بیشتر آن را در این لینک پیدا کنید. برخی از پرچم‌های رایج برای کتابخانه‌ها گزینهٔ پرچم -lm امکان کامپایل کتابخانه‌های libm نوع سوم را به همراه کتابخانه‌های ریاضیاتی که عموماً به زبان سی هستند را می‌دهد. گزینهٔ پرچم -lpthread امکان کامپایل کتابخانه‌های مشترک از استاندارد پازیکس (Posix) را ارائه می‌کند. گزینهٔ پرچم -lstdc++fs امکان کامپایل و لینک شدن به کتابخانهٔ فایل‌سیستم را در استاندارد ۱۷ به بعد می‌دهد. پرچم‌های بهینه‌سازی تحت کامپایلر‌ با فعال‌سازی و اعمال پرچم-O0 هیچ گونه بهینه‌سازی بر روی کد‌ها انجام نمی‌شود، در اصل امکان بهینه‌سازی کاملاً غیرفعال می‌شود. زمان کامپایل و همگردانی کد‌ها سریع‌تر می‌شود و برای ابزار‌های اشکال‌زدائی بهترین عملکرد را دارد. با فعال‌سازی و اعمال پرچم-O2 سطح بالا‌تری از بهینه‌سازی صورت می‌گیرد، ترکیبی از حالت بهینه‌سازی و سطح قبلی را اعمال می‌کند و طبیعتاً زمان بیشتری صرف کامپایل می‌شود و گزینهٔ بهتری برای ساخت یک محصول بهتر است. با فعال‌سازی و اعمال پرچم-O3 سطح بالا‌تری نسبت به سطح دوم از بهینه‌سازی صورت می‌گیرد، طبیعتاً زمان بیشتری صرف کامپایل می‌شود و گزینهٔ بهتری برای ساخت یک محصول بهتر است. از طرفی حجم باینری بیشتری را تولید کرده و زمان کامپایل طولانی‌تری را تحمیل می‌کند. با فعال‌سازی و اعمال پرچم-OFast سطح بالا‌تری نسبت به سطح سوم از بهینه‌سازی صورت می‌گیرد، طبیعتاً زمان بیشتری صرف کامپایل می‌شود و گزینهٔ بسیار بیشتری مانند -ffloat-store, -ffsast-math, -ffinite-math-only, -O3 را فعال می‌کند و برای ساخت یک محصول بهتر است. با فعال‌سازی و اعمال پرچم -OS امکان سطح دوم از بهینه‌سازی فعال می‌شود، با تفاوت اینکه برخی از پرچم‌ها با هدف کاهش اندازهٔ فایل کدِ شیء (object-code) غیرفعال می‌‌شوند. با فعال‌سازی و اعمال پرچم-Oz سطح بالا‌تری نسبت به سطح -OS برای کاهش اندازهٔ فایل صورت می‌گیرد. این گزینه مختصِ Clang است. توضیحات و مراجع دقیق و بیشتر در رابطه با عملیات مربوط به پرچم‌های بهینه سازی در کامپایلر‌های مختلف به صورت زیر است: کامپایلر GCC کامپایلر Clang کامپایلر MSVC دقت کنید که نوع پرچم‌ها نسبت به کامپایلر‌ها متفاوت است، برای مثال پرچم -Od به معنای غیر‌فعال‌سازی تمامی بهینه‌سازی‌ها و جمع‌آوری و کامپایل سریع کد‌ها و در نهایت اشکال‌زدائی بهتر است که در Clang و MSVC پشتیبانی می‌شود و یا پرچمِ -OS صرفاً بر روی کامپایلر کلنگ قابل استفاده است.
  3. nima_pw

    سلام من یک پروژه open source دانلود کردم، شبیه سازی یک مقاله هست باید اجرا کنم و خروجی هاش رو ببینم به زبان C نوشته شده اما با Cmake ساخته شده که تقریبا فهمیدم Cmake چیه اما نتونستم برنامه رو توی Visual Studio اجرا کنم. Cmake رو نصب و خروجی رو برای Visual studio 2017 ساختم اما وقتی اجرا میکنم پیام out of date میده، در جواب build میزنم yes اما faild میشه، No میزنم اجرا نمیشه از داخل خود Visual Studio هم که توی سرچ هام فهمیدم میشه مستقیما پوشه ای که cmakeList.txt داره رو open کرد، این کارو کردم اما اون بالا کنار فلش سبز رنگ نوشته select startup item و روی current document هست و گزینه دیگه ای نداره و قابلیت اجرا نداره تصویر فایل های این پروژه رو ضمیمه کردم نمیدونم باید چیکار کنم، ممنون میشم راهنمایی کنید.
×
×
  • جدید...