PDA

View Full Version : كامپايلر c



mahin_n
چهارشنبه 23 مهر 1393, 10:02 صبح
سلام دوستان
ميخام يه برنامه چت تحت شبكه به زبان c بنويسم.
بهترين كامپايلر زبان c براي اين برنامه چي ميتونه باشه ؟ توي محيط توربو سي اجرا كردم چندان رضايت بخش نبود :/

کامبیز اسدزاده
چهارشنبه 23 مهر 1393, 12:19 عصر
سلام دوستان
ميخام يه برنامه چت تحت شبكه به زبان c بنويسم.
بهترين كامپايلر زبان c براي اين برنامه چي ميتونه باشه ؟ توي محيط توربو سي اجرا كردم چندان رضايت بخش نبود :/

سلام؛

توروبو رو بیخیال بشید برای نوشتن همچین چیزی از Qt استفاده کنید.
برای مثال Viber تحت کتابخانه Qt نوشته شده و خیلی هم قدرتمنده.

کامپایلر قدرتمندی مثل MSVC یا GCC در لینوکس میتونه پاسخگوی نیاز شما باشه.

Coder#
جمعه 25 مهر 1393, 14:23 عصر
سلام.
اول باید کتابخانه ای از توابعِی که احتیاج داری بنویسی، سپس شروع به ساخت و ساز کنی.
زبان C که زبان ++C یا Java یا Objective-C نیست که یک بچه 7 ساله هم می تونه از نعمتهای فراوانشون استفاده کنه.
کامپایلرهای GCC و LCC از معروف ترین کامپایلرها هستن.
سعی کن حتی از توابع کتابخانه استاندارد C هم به نُدرت استفاده کنی، چه برسه مال کسانی دیگر رو. نهایتش از printf و scanf و از این قبیل توابع استفاده کن، چرا که ساخت اینها نیاز به دانش سطح پایین داره.
بعد از اینکه کتابخانه مربوطه ات رو ساختی، لذت ساخت برنامه مورد نظرت بسیار بیشتر میشه.
اگر قراره از این راه (برنامه نویسی به زبان C) پول در بیاری، باید بسیار صبور و فعال باشی. در این راه، 'پول' بعد از 'تجربه ای خوب' میاد، نه بلعکس. من صدها تابع ساختم و هنوز به صدها نوع دیگر برای به حقیقت رسوندن اهدافم نیز احتیاج دارم.
استفاده از یک گوشی موبایل یکی از وحشتناک ترین تجربه های من بود. زمانی که تو ابزاری رو برای استفاده در دستانت داری، اما از ابزارک های درون اون با خبر نیستی، از ترسناک ترین تجربه هاست. به همین منظور، معمولا من از موبایلم فاصله می گیرم، و این PC جلوی چشمانم نیز همچنان مثل یک کابوس تمام نشدنیه.

این ها همه اش به میل خودت بستگی داره. تو با ارزشی. سوالی که تو پرسیدی، عجیب بود، و پاسخ تو هم همین بود. کتابخانه استاندارد C چیزی درباره شبکه نمیگه. درواقع تو باید خودت توابع رو بنوسی.
به این صفحه (http://en.wikibooks.org/wiki/C_Programming/Networking_in_UNIX#Useful_network_functions) نگاهی بی انداز تا کمی با ساختار و مفاهیم مربوطه آشنا بشی.

motherboard
جمعه 25 مهر 1393, 22:48 عصر
زبان C که زبان ++C یا Java یا Objective-C نیست که یک بچه 7 ساله هم می تونه از نعمتهای فراوانشون استفاده کنه.
سلام.شما جناب coder لطفا به من بگویید که زبان C چه چیزهایی دارد که زبان ++C ندارد چون قصد دارم که معلوماتم در مورد این دو زبان بیشتر شود. تنها خواهشی که از شما دارم اینه که لطفا به اصل سوال پاسخ بدید و حواشی و این بد است و ان بد است را چاشنی پاسختون نکنید. ممنون.

Coder#
جمعه 25 مهر 1393, 23:45 عصر
سلام.شما جناب coder لطفا به من بگویید که زبان C چه چیزهایی دارد که زبان ++C ندارد چون قصد دارم که معلوماتم در مورد این دو زبان بیشتر شود. تنها خواهشی که از شما دارم اینه که لطفا به اصل سوال پاسخ بدید و حواشی و این بد است و ان بد است را چاشنی پاسختون نکنید. ممنون.
اونوقت تو چکاره ای اینجا؟

mahin_n
یک شنبه 27 مهر 1393, 09:12 صبح
سلام؛

توروبو رو بیخیال بشید برای نوشتن همچین چیزی از Qt استفاده کنید.
برای مثال Viber تحت کتابخانه Qt نوشته شده و خیلی هم قدرتمنده.

کامپایلر قدرتمندی مثل MSVC یا GCC در لینوکس میتونه پاسخگوی نیاز شما باشه.

ضمن تشكر از پاسختون فكر ميكنم اشتباه از جانب من بود كه از ابتدا مشخص نكردم كه توي محيط ويندوز قصد اجراي اون رو دارم و نه لينوكس.
يه مبحثي هم كه وجود داره اينه كه ميخام از socket و توابع اون استفاده كنم . كدهارو توي توربو سي اجرا ميكنم خيلي ارور ميده . اگه لطف كنيد بگيد توي محيط ويندوز از چه كامپايلري استفاده كنم كه ممنون ميشم.

mahin_n
یک شنبه 27 مهر 1393, 09:14 صبح
به این صفحه (http://en.wikibooks.org/wiki/C_Programming/Networking_in_UNIX#Useful_network_functions) نگاهی بی انداز تا کمی با ساختار و مفاهیم مربوطه آشنا بشی.


دقيقا ميخام با توابع سوكت برنامه رو بنويسم ولي توي محيط ويندوز . لينك شما مربوط به لينوكس هست.

negative60
یک شنبه 27 مهر 1393, 12:24 عصر
دقيقا ميخام با توابع سوكت برنامه رو بنويسم ولي توي محيط ويندوز . لينك شما مربوط به لينوكس هست.

اگر هدفدتون ويندوزه بهتره با يکی از نسخه های visual studio unlimited کار کنيد.
اين سايت (http://www.winsocketdotnetworkprogramming.com/) خوبی هست برای يادگيری برنامه نويسی سوکت اما اگر تا به حالا با سوکت کار نکرديد بهتره اول يکی دو تا کتاب در موردش بخونید

Coder#
یک شنبه 27 مهر 1393, 12:34 عصر
دقيقا ميخام با توابع سوكت برنامه رو بنويسم ولي توي محيط ويندوز . لينك شما مربوط به لينوكس هست.

من کلا از چند تابع از کتابخانه استاندارد C استفاده می کنم و بقیه اش دست نوشته های خودمه، بنابراین تا به حال از کتابخانه Socket استفاده نکردم. اما در سیستم عامل Windows، این Header file به نام winsock.h و winsock2.h شناخته میشه.
کتابخانه های سوکت (ws2_32.lib و winsock.lib) در Microsoft Visual Studio و Windows SDK قابل دسترسی هستن.
در IDE هایی مثل Code::Blocks و ++DEV C هم می تونی از اونها استفاده کنی. برای استفاده، باید کتابخانه ها رو به بخش Linker اضافه کنی، و هدرفایل winsock2.h یا winsock.h رو include# کنی.

در اینجا می تونی به صورت کامل درباره شون مطالعه کنی: Getting Started with Winsock (http://msdn.microsoft.com/en-us/library/windows/desktop/ms738545%28v=vs.85%29.aspx)
اینجا رو هم مطالعه کن: Socket function (http://msdn.microsoft.com/en-us/library/windows/desktop/ms740506%28v=vs.85%29.aspx)
مثال هایی از توابع کتابخانه استاندارد سی: The C Standard Library (http://www.tutorialspoint.com/c_standard_library/)


Microsoft Visual Studio و Windows SDK رو روی ویندوزت نصب کن و بعدش از بچه هایی که با این دو برنامه کار کردن و تجربه دارن سوال کن.

دو هدر فایل winsock.h و winsock2.h و کتابخانه ws2_32.lib رو برات در یک فایل RAR قرار دادم.

من تنها خورده اطلاعاتی درباره این دو کتابخانه دارم.

motherboard
یک شنبه 27 مهر 1393, 13:48 عصر
اونوقت تو چکاره ای اینجا؟
ممنون از راهنمایی و پاسخ شما.
یک سوال دوم هم داشتم و اون اینکه همون طور که می دونید تو زبان C مبحثی داریم به نام استراکچر ها که با ان می توانیم شی بسازیم.پس ظاهرا تفاوتی بین C و ++C نیست.پس چرا هروقت صحبت از تفاوت ها میان C و ++C میشه پاسخ داده میشه که C شی گرا نیست ولی ++C شی گراست؟ پس تفاوت این دو در چیست؟

C3phalex1n_0x
یک شنبه 27 مهر 1393, 14:39 عصر
ممنون از راهنمایی و پاسخ شما.
یک سوال دوم هم داشتم و اون اینکه همون طور که می دونید تو زبان C مبحثی داریم به نام استراکچر ها که با ان می توانیم شی بسازیم.پس ظاهرا تفاوتی بین C و ++C نیست.پس چرا هروقت صحبت از تفاوت ها میان C و ++C میشه پاسخ داده میشه که C شی گرا نیست ولی ++C شی گراست؟ پس تفاوت این دو در چیست؟

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

تفاوت های سی و سی پلاس پلاس زیاد هست. از پیاده سازی خود زبان گرفته تا امکاناتی که آنها به برنامه نویس ارائه می دهند. اصولا از زبان سی برای نوشتن برنامه های سطح پایین یا حداقل برنامه های متمایل به سمت پایین استفاده می کنند! مانند سیستم عامل، کامپایلر، مفسر و... همچنین شایان ذکر است، از سی پلاس پلاس هم می توان برای برنامه نویسی سیستمی استفاده کرد، اما انعطاف زبان خالص سی را ندارد.

این را هم ذکر کنم، برنامه نویسی با C نیاز به دقت بسیار بالایی دارد، مخصوصا زمانی که شما با اشاره گرها سر و کار دارید. یکی از دلایلی که هم زبان C++ ابداع شد، این بود که این موضوع تسهیل بخشیده شود و برنامه نویس دقدقه های برنامه نویسی زیادی نداشته باشد. به عبارت دیگر طراحان C++ قصد داشتند زبان برنامه نویسی ایجاد کنند که تا حدالمکان قدرت C را داشته باشد و علاوه بر آن از منطق شی گرایی پشتیبانی کرده و همچنین برنامه نویسی در آن ساده تر باشد. از همین روی هم هست که همه می گویند، کسی که بتواند با C کد نویسی کند، برنامه نویسی در دیگر زبان ها و دیگر منطق ها برای آن بسیار ساده خواهد بود.

کامبیز اسدزاده
دوشنبه 28 مهر 1393, 09:19 صبح
ضمن تشكر از پاسختون فكر ميكنم اشتباه از جانب من بود كه از ابتدا مشخص نكردم كه توي محيط ويندوز قصد اجراي اون رو دارم و نه لينوكس.
يه مبحثي هم كه وجود داره اينه كه ميخام از socket و توابع اون استفاده كنم . كدهارو توي توربو سي اجرا ميكنم خيلي ارور ميده . اگه لطف كنيد بگيد توي محيط ويندوز از چه كامپايلري استفاده كنم كه ممنون ميشم.

پاسخ من هم برای ویندوز و هم برای لینوکس صحیح است.
کامپالیر MSVCبرای ویندوز و GCC برای لینوکس مورد استفاده قرار میگیرد.

motherboard
دوشنبه 28 مهر 1393, 09:54 صبح
کامپالیر MSVCبرای ویندوز و GCC برای لینوکس مورد استفاده قرار میگیرد.
البته از GCC هم میشه در ویندوز استفاده کرد.(minGW )

StandardCode
دوشنبه 28 مهر 1393, 10:32 صبح
سلام دوستان
ميخام يه برنامه چت تحت شبكه به زبان c بنويسم.
بهترين كامپايلر زبان c براي اين برنامه چي ميتونه باشه ؟ توي محيط توربو سي اجرا كردم چندان رضايت بخش نبود :/

توربو سی که دیگه مال عهده بوقه. اگر میخوای تحت ویندوز باشی همون MSVC که دوستان گفتن خوبه. مگر اینکه کتابخانه ای که داری ازش استفاده میکنی از خصوصیات c99 یا c11 استفاده کرده باشه که باتوجه به اینکه MSVC ۲۰۱۳ تا حدی c99 رو پوشش میده و نه همه خصوصیات رو بنابراین مجبور میشی بری طرف minGW یا کامپایلر اینتل