انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: abedzadeh در 17 مهر 1394، 11:02 قظ
-
سلام دوستان
مدتی هست که دانشگاه ها شروع شده و من تازه یادگیری برنامه نویسی رو آغاز کردم
سر کلاس سی++ رو درس میدن و از ویژوال استدیو استفاده میکنند
متوجه شدم که ویژوال استدیو اول برنامه ها
#include "stdafx.h"
رو اضافه میکنه
خواستم ببینم این قسمت چیه ؟
کمی جست و جو کردم و متوجه شدم مربوط به precompile هست و سرعت کامپایل رو افزایش میده (ظاهرا!)
اما هنوز متوجه نشدم که مربوط به ویندوزه یا توی گنو/لینوکس هم کاربرد داره ؟
و یه سوال کوچیک دیگه : آیا میشه سی و سی++ رو همزمان یاد گرفت ؟
با تشکر
-
خب ظاهرا این سرآیند توسط مایکروسافت ویژوال استودیو ایجاد شده ، در نتیجه استاندارد نیست . بنابراین تو گنو/لینوکس شناخته شده نیستش .
ظاهرا تو سرعت هم تاثیر داره .
https://en.wikipedia.org/wiki/Precompiled_header
سی و سی ++ واقعا تفاوت آنچنانی ندارند ، فقط سی ++ مفاهیم شی گرایی رو هم پوشش میده اما سی خیر .
-
خب ظاهرا این سرآیند توسط مایکروسافت ویژوال استودیو ایجاد شده ، در نتیجه استاندارد نیست . بنابراین تو گنو/لینوکس شناخته شده نیستش .
ظاهرا تو سرعت هم تاثیر داره .
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.
-
خوبی استاندارد نوشتن اینه که همه جا برنامه اجرا میشه و به چیزی وابسته نیستش .
و بدی ویندوز هم دقیقا همینه ، برنامه هایی که تو ویندوز مینویسید جاهای دیگه اجرا نخواهند شد ، چون وابسته به ویندوز و غیر استاندارد هستند .
-
خوبی استاندارد نوشتن اینه که همه جا برنامه اجرا میشه و به چیزی وابسته نیستش .
و بدی ویندوز هم دقیقا همینه ، برنامه هایی که تو ویندوز مینویسید جاهای دیگه اجرا نخواهند شد ، چون وابسته به ویندوز و غیر استاندارد هستند .
البته این حرفتون درست نیستا.
توی ویندوز هم میشه استاندار نوشت.اینجا ویژوال استودیو خودش این هدر رو میاره که با انتخاب empty project میشه کلا از اوله اول خودتون هدر ها رو بذارید.
یا حتی با کیوت استاندارد بنویسید.
بستگی به خود بزنامه نویس داره.
به نظر بنده اگه فقط قراره به خاطر سرعت کامپایل بالاتر از این هدر استفاده کنیم بهتره از یه IDE مثله Ceemple استفاده بشه که همه جور کتابخونه ای رو با خودش داره و سرعت کامپایلش هم فوق العاده کمه.
یه بار تست کنید.
هم واسه لینوکس هستش هم ویندوز.
-
تو ویندوز هم میشه ولی بخاطر وابسته کردن افراد به سرآیند های غیراستاندارد اکثرا با مشکل مواجه میشند .
-
یه برنامه رو کامپایل کنم که نشد
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++ کامپایلش کن
-
:) دوست من ، اروری که داده مربوط به اینه که سرآیند stafx.h رو نشناخته ، چون ستاندارد نیست . نه بخاطر اینکه تو کدش اینکلود نکرده :)
-
نه من نگفتم اینکلود نکرده!
اینقدر دیگه *** نیستم!
با g++ نباید برای استفاده از اینجور هدر ها(استاندارد) پسوند بزنی.
البتهاین که استاندارد نبود!
-
ینو بزن درست میشه؟!
#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.
-
اصلا ربطی نداره به اون . چون غیر استاندارد هستش ، نمی شناستش .
-
اون هدر مال ویژواله لازم هم نیست ازش استفاده بشه
خوبی استاندارد نوشتن اینه که همه جا برنامه اجرا میشه و به چیزی وابسته نیستش .
و بدی ویندوز هم دقیقا همینه ، برنامه هایی که تو ویندوز مینویسید جاهای دیگه اجرا نخواهند شد ، چون وابسته به ویندوز و غیر استاندارد هستند .
باهات موافقم ، درسته توی ویندوز هم میشه استاندارد نوشت اما " میشه نوشت" ، اما توی لینوکس برنامه استاندارد "نوشته میشه"
پ.ن : البته برنامه نویس هم خیلی تاثیر داره :)
-
اصلا ربطی نداره به اون . چون غیر استاندارد هستش ، نمی شناستش .
بله ببخشید من اشتباه کردم!
آره استاندارد نیست.