PDA

View Full Version : سوال: ساخت فایل header



sad580
جمعه 31 خرداد 1387, 11:10 صبح
دوستان غزیز لطفآ من را در ساخت فایل header کمک کنید

Arash m
یک شنبه 02 تیر 1387, 19:40 عصر
سلام.
فایل Header فایلی است برای خلوت تر کردن برنامه اصلی همونجایی که تابه Main هست و مهمتر از همه برای استفاده مجدد از توابعی که نوشتیم . مثلا تابعی برای ذخیره داده نوشتیم و اون رو تو فایل Header میذاریم . بعدا اگه برنامه ای نوشتیم که اون هم نیاز به ذخیره داده داشت فقط با نوشتن یک کمله تو برنامه جدید تابع ها تو برنامه جدید آورده میشه (درست مثل اینکه کپی کرده باشی).
پس اگه تابعی که مینویسیم اونارو با قابلیت استفاده مجدد بنویسیم.مثلا هیچ وقت پیغامی رو توی تابع چاپ نکنیم سیع کنیم با دستور Return توی تابع نتیجه کار رو به تابع صدا زده مثل Main برگردونیم تا اون با توجه به خروجی تابع پیغام مورد نظر رو چاپ کنه.

خوب حالا بریم سر اصل مطلب:
اگه بخوای یه فایل Header درست کنی باید توی محیط سی توابعی رو که میخوای به غیر از main (چون او مال برنامه اصلیه) بنویسی توجه داشته باش که دستورات رو خارج از تابع ها ننویسی به غیر از تابع هرچیزی تو فایل بنویسی مثل تعریف متغییر سراسری و حتی خود include ها هم به جایی که فایل header رو صدا میزنی آورده میشن.بعد از تموم شدن اون فایل رو با هر پسوندی که دلت خواست ذخیره کن ولی سیع کن با پسوند h باشه چون استاندارده.(مثل my.h).

روش استفاده :

هر جا خواستی فایل رو استفاده کنی تو بالای برنامه اصلی از دستور

#includeاستفاده میکنیم.
بعد از این دستور نام فایل رو داخل " قرار بده مثل:

#include"C:\my.h"توجه داشته باش که اگه نام فایل رو بدون آدرس بنویسی برنامه سی فایل رو از اون جایی که برنامه اجرا میشه فرا خوانی میکنه که این پوشه رو میتونین از منوی File و انتخاب گزینه Change dir تغییر بدی.

اگه به جای " از <> استفاده کنید مثل:

#include<my.h>کامپایلر اون رو از پوشه ای که سی اونجا هست و داخل پوشه INCLUDE باز میکنه.
مثلا اگه سی توی پوشه TC نصب شده باشه مسیر میشه :

C:\TC\include\برای کمک یه فایل Heade رو ایجا مینویسم:

محتوای فایل header :


#include<conio.h>
#include<iostream.h>

int h_int=10;

void function(){
cout<<"This function run in the header file."
getch();
}

این فایل رو با نام my.h توی پوشه include که قبلا گفتم کجاست Save کن.

این هم کد های برنامه اصلی که تابع main توی اونه


#include<my.h>"
void main(){
clrscr();
cout<<"h_int="<<h_int<<endl;
function();
}
اگه دقت کرده باشید include های همیشگی رو توی برنامه ننوشتم چون اونارو توی heade فایل خودم نوشته بودم.
توی برنامه از متغییر عددی که توی header نوشته بودم استفاده کردنم و تابع داخل اون رو صدا زدم.

امیدوارم مطالبی رو که نوشتم مفید واقع شده باشه.
موفق باشید.

Dadai ahmad
چهارشنبه 05 تیر 1387, 19:23 عصر
در مورد آرگومان های تابع می شه توضیح بدهید؟
مرسی

Arash m
یک شنبه 16 تیر 1387, 00:06 صبح
خوب آرگومان های تابع همون فرمت صدا زدن اونا هست که شامل نام تابع ، متغییر های ورودی و نوع و ترتیب اونا ، نوع متغییر خروجی و غیره.

soroush68
دوشنبه 07 مرداد 1387, 14:30 عصر
من فایل ها رو می تونم با هر پسوندی ذخیره و اجرا کنم اما اگر به فایل هدر بخوام پسوند .cpp بدم مشکل پیدا می کنه. از visual studio 2005 استفاده می کنم

deopen
پنج شنبه 10 مرداد 1387, 23:09 عصر
معمولا برای امضاهای تابع و اعلان متغیر های یک کلاس از اون استفاده میشه...
فایل هدر:


//fanction.h
class max {
public:
void maxx(int,int,int);
void maxt(int,int);
void message();
private:
int inMax; int in2; int in3;
};

فایل سورس :


//max.cpp
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
#include<string>
using std::string;
#include"function.h"
void max::maxx(int x, int y, int z) {
inMax=x;
maxt(y,z);
if (y>inMax) {
inMax=y;
maxt(x,z);
}
if (z>inMax) {
inMax=z;
maxt(x,y);
}
message();
}
void max::maxt(int x,int y) {
if (x>y){
in2=x;
in3=y;
}
else {
in2=y;
in3=x;
}
}
void max::message() {
cout<<"\n"<<in3<<"\t"<<in2<<"\t"<<inMax<<endl;
}
int main(){
int x,y,z,exit;
do {
cout<<"\nSTART PROGRAME\n\nEnter first num or enter EOF (ctrl+z) to exit: "<<endl;
cin>>x;
cout<<"Enter second num or enter EOF (ctrl+z) to exit: "<<endl; cin>>y;
cout<<"Enter last num or enter EOF (ctrl+z) to exit: "<<endl; cin>>z;
max INTmax;
INTmax.maxx(x,y,z);
}while((exit=cin.get())!=EOF);
}


برنامه ای که نوشتم 3 تا عدد میگیره و بصورت صعودی به خروجی میفرسته با وارد کردن ctrl+z یا هر چیزی بغیر از عدد خواسته از برنامه خارج میشه...

MSJazayeri
یک شنبه 13 مرداد 1387, 20:15 عصر
اول فایل هدرت اینو بنویس:

#pragma once
این باعث میشه فایل هدر بیشتر از یک بار ضمیمه یک فایل نشه.:بامزه: