• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

ساخت فایل هدر در سی

novomber

کاربر تازه وارد
تاریخ عضویت
28 ژوئن 2006
نوشته‌ها
72
لایک‌ها
0
سلام...
چطور میشه فایل هدر ساخت؟ همون فایلهای با پسوند h که با دستور include فراخوانی میشند.
یعنی توابع رو چطور باید توش تعریف کرد؟
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
معمولا توی هدر فایل ها فقط تعریف(prtotype) توابع رو می نویسن البته این یه قانون نیست ولی یه قرار داده
و پیاده شاری توابع رو توی یه فایل Cpp هم نام می نویسن و فایل هدر رو هم با پیش پردازنده ها شرطی محاصره می کنن موقع کامپایل هم فایل cpp رو کامپایل کنید و به وسیله لینکر به برنامه اصلی لینک کنید برای اینکار اگه از یه IDE استفاده می کنید فقط لازمه تا فایل cpp رو به پروژه اضافه کنید

فایل myheader.h
کد:
#ifndef MYHEADER_H
#define MYHEADER_H
// funcion prtotype
   void f1(int);              //instance function one
   double f2(const float* );  //instance function two
   /*
       you must write other prtotype  here
   */
#endif

فایل myheader.cpp
کد:
void f1(int i)
{
     // code here for this function
}

double f2(const float* f)
{
     // code here for this function
}

فقط دقت کنید که باید این فایل ها با دابل کوتیشن اینکلود کنید نه کوچکتر و بزرگتر
 

novomber

کاربر تازه وارد
تاریخ عضویت
28 ژوئن 2006
نوشته‌ها
72
لایک‌ها
0
سلام آرش جان.
فکر نکنم شناخته باشی.
ولی من میشناسمت.
آرش جان حالا اگر نخوام از لینکر استفاده کنم چطوری میشه؟
یکی از دویتان میگفت همینجوری هر فایل C که تابع Main نداره رو میشه پسوندش رو بکنی H و ازش استفاده کنی.
ولی من اینجوری تست کردم ارور گرفت.
نظرت چیه؟

اینم ارورش


Missing function Prototype
و
function definition Requires ANSI Style Parameter List

نظرت چیه آرش جان؟
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
نمی شه از لینکر استفاده نکرد لینکر کارش ساخت فایل exe هست ولی اگه منظورتون اینکه از خط فرمان استفاده نکنید
روشش همونی هست که گفتم

در مورد گفته دوستتون هم تا روش اصولی درست کار نیست ولی جواب می ده اما را درست اینکه تعاریف توی یه فایل هدر باشه و پیاده سازی توی یه فایل .cpp فایل هدر رو توی برنامه اصلی اینکلود کنید و فایل .cpp رو هم به لیست سورس ها پروژه در محیط IDE اضافه کنید

در مورد خطا هم تا کد رو نبینم نمی شه درست گفت از چی ولی می شه حدس زد که ممکنه درست نباشه
خطا اولی احتمالا به خاطر این هست که توی یکی از توابع از یه تابعی استفاده کردید که در زیر اون تابع تعریف شده و کامپایلر چون هنوز بهش نرسیده نمی شناستش

دومی ممکنه به این دلیل باشه که تعریف تابع با استانداد ها تفاوت داره
 
بالا