انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: abedzadeh در 17 مهر 1394، 11:02 ق‌ظ

عنوان: سوال در مورد stdafx.h در ++c
ارسال شده توسط: abedzadeh در 17 مهر 1394، 11:02 ق‌ظ
سلام دوستان
مدتی هست که دانشگاه ها شروع شده و من تازه یادگیری برنامه نویسی رو آغاز کردم
سر کلاس سی++ رو درس میدن و از ویژوال استدیو استفاده میکنند
متوجه شدم که ویژوال استدیو اول برنامه ها
#include "stdafx.h"رو اضافه میکنه
خواستم ببینم این قسمت چیه ؟
کمی جست و جو کردم و متوجه شدم مربوط به ‌precompile هست و سرعت کامپایل رو افزایش میده (ظاهرا!)
اما هنوز متوجه نشدم که مربوط به ویندوزه یا توی گنو/لینوکس هم کاربرد داره ؟

و یه سوال کوچیک دیگه : آیا میشه سی و سی++ رو همزمان یاد گرفت ؟

با تشکر
عنوان: پاسخ : سوال در مورد stdafx.h در ++c
ارسال شده توسط: koosha در 17 مهر 1394، 11:23 ق‌ظ
خب ظاهرا این سرآیند توسط مایکروسافت ویژوال استودیو ایجاد شده ، در نتیجه استاندارد نیست . بنابراین تو گنو/لینوکس شناخته شده نیستش .
ظاهرا تو سرعت هم تاثیر داره .
https://en.wikipedia.org/wiki/Precompiled_header
سی و سی ++ واقعا تفاوت آنچنانی ندارند ، فقط سی ++ مفاهیم شی گرایی رو هم پوشش میده اما سی خیر .
عنوان: پاسخ : سوال در مورد stdafx.h در ++c
ارسال شده توسط: abedzadeh در 17 مهر 1394، 11:37 ق‌ظ
خب ظاهرا این سرآیند توسط مایکروسافت ویژوال استودیو ایجاد شده ، در نتیجه استاندارد نیست . بنابراین تو گنو/لینوکس شناخته شده نیستش .
ظاهرا تو سرعت هم تاثیر داره .
https://en.wikipedia.org/wiki/Precompiled_header
سی و سی ++ واقعا تفاوت آنچنانی ندارند ، فقط سی ++ مفاهیم شی گرایی رو هم پوشش میده اما سی خیر .
ممنون بابت پاسختون  :)
همین الان هم تلاش کردم که با
#include "stdafx.h"یه برنامه رو کامپایل کنم که نشد

ali@ali-PC:~/Desktop$ g++ test.c -o test
test.c:1:20: fatal error: stdafx.h: No such file or directory
 #include "stdafx.h"
                    ^
compilation terminated.
عنوان: پاسخ : سوال در مورد stdafx.h در ++c
ارسال شده توسط: koosha در 17 مهر 1394، 11:51 ق‌ظ
خوبی استاندارد نوشتن اینه که همه جا برنامه اجرا میشه و به چیزی وابسته نیستش .
و بدی ویندوز هم دقیقا همینه ، برنامه هایی که تو ویندوز مینویسید جاهای دیگه اجرا نخواهند شد ، چون وابسته به ویندوز و غیر استاندارد هستند .
عنوان: پاسخ : سوال در مورد stdafx.h در ++c
ارسال شده توسط: احسان فعالپور در 17 مهر 1394، 12:51 ب‌ظ
خوبی استاندارد نوشتن اینه که همه جا برنامه اجرا میشه و به چیزی وابسته نیستش .
و بدی ویندوز هم دقیقا همینه ، برنامه هایی که تو ویندوز مینویسید جاهای دیگه اجرا نخواهند شد ، چون وابسته به ویندوز و غیر استاندارد هستند .
البته این حرفتون درست نیستا.
توی ویندوز هم میشه استاندار نوشت.اینجا ویژوال استودیو خودش این هدر رو میاره که با انتخاب empty project میشه کلا از اوله اول خودتون هدر ها رو بذارید.
یا حتی با کیوت استاندارد بنویسید.
بستگی به خود بزنامه نویس داره.
به نظر بنده اگه فقط قراره به خاطر سرعت کامپایل بالاتر از این هدر استفاده کنیم بهتره از یه IDE مثله  Ceemple استفاده بشه که همه جور کتابخونه ای رو با خودش داره و سرعت کامپایلش هم فوق العاده کمه.
یه بار تست کنید.
هم واسه لینوکس هستش هم ویندوز.
عنوان: پاسخ : سوال در مورد stdafx.h در ++c
ارسال شده توسط: koosha در 17 مهر 1394، 01:02 ب‌ظ
تو ویندوز هم میشه ولی بخاطر وابسته کردن افراد به سرآیند های غیراستاندارد اکثرا با مشکل مواجه میشند .
عنوان: پاسخ : سوال در مورد stdafx.h در ++c
ارسال شده توسط: فاروق در 17 مهر 1394، 01:43 ب‌ظ
یه برنامه رو کامپایل کنم که نشد

ali@ali-PC:~/Desktop$ g++ test.c -o test
test.c:1:20: fatal error: stdafx.h: No such file or directory
 #include "stdafx.h"
                    ^
compilation terminated.

اینو بزن درست میشه؟!
#include <stdafx>بعد با g++ کامپایلش کن
عنوان: پاسخ : سوال در مورد stdafx.h در ++c
ارسال شده توسط: koosha در 17 مهر 1394، 02:34 ب‌ظ
:) دوست من ، اروری که داده مربوط به اینه که سرآیند stafx.h رو نشناخته ، چون ستاندارد نیست . نه بخاطر اینکه تو کدش اینکلود نکرده :)
عنوان: پاسخ : سوال در مورد stdafx.h در ++c
ارسال شده توسط: فاروق در 17 مهر 1394، 02:37 ب‌ظ
نه من نگفتم اینکلود نکرده!
اینقدر دیگه *** نیستم!
با g++ نباید برای استفاده از اینجور هدر ها(استاندارد) پسوند بزنی.
البتهاین که استاندارد نبود!
عنوان: پاسخ : سوال در مورد stdafx.h در ++c
ارسال شده توسط: abedzadeh در 17 مهر 1394، 08:13 ب‌ظ
ینو بزن درست میشه؟!
#include <stdafx>بعد با g++ کامپایلش کن

ali@ali-PC:~/Desktop$ g++ test.cpp -o test
test.cpp:1:18: fatal error: stdafx: No such file or directory
 #include <stdafx>
                  ^
compilation terminated.
عنوان: پاسخ : سوال در مورد stdafx.h در ++c
ارسال شده توسط: koosha در 17 مهر 1394، 08:35 ب‌ظ
اصلا ربطی نداره به اون . چون غیر استاندارد هستش ، نمی شناستش .
عنوان: پاسخ : سوال در مورد stdafx.h در ++c
ارسال شده توسط: امیــــــر در 18 مهر 1394، 09:26 ق‌ظ
اون هدر مال ویژواله لازم هم نیست ازش استفاده بشه

نقل‌قول
خوبی استاندارد نوشتن اینه که همه جا برنامه اجرا میشه و به چیزی وابسته نیستش .
و بدی ویندوز هم دقیقا همینه ، برنامه هایی که تو ویندوز مینویسید جاهای دیگه اجرا نخواهند شد ، چون وابسته به ویندوز و غیر استاندارد هستند .

باهات موافقم ، درسته توی ویندوز هم میشه استاندارد نوشت اما  " میشه نوشت" ، اما توی لینوکس برنامه استاندارد "نوشته میشه"

پ.ن : البته برنامه نویس هم خیلی تاثیر داره  :)
عنوان: پاسخ : سوال در مورد stdafx.h در ++c
ارسال شده توسط: فاروق در 24 مهر 1394، 01:59 ب‌ظ
اصلا ربطی نداره به اون . چون غیر استاندارد هستش ، نمی شناستش .

بله ببخشید من اشتباه کردم!
آره استاندارد نیست.