snbb000
پنج شنبه 16 بهمن 1393, 11:54 صبح
سلام دوستان به کد زیر توجه کنید .
من یک فایل دارم به اسم f.h توی اون کد زیر هست
void set(int x);
int get(void);
یک فایل داریم به اسم f.c توش این کد هست
#include "f.h"
static int a;
void set(int x)
{
a = x;
}
int get(void)
{
return a;
}
حالا توی main.c این کد ها است
#include <stdio.h>
#include "f.h"
int main(void)
{
set(10);
printf("%d",get());
}
وقتی کامپایل میشه کد بدون مشکل اجرا میشه . حالا سوال اینجاست
مگه چون توایع get و set چون توی یک فایل دیگه بودند نباید توی main.c اونارو extern معرفی می کردم ؟
من extern معرفی نکردم و بدون هیچ مشکلی هم اجرا شد.
سوال بعد اینکه که چرا این اجرا شد ؟ و چه موقع باید از کلمه extern استفاده کنم ؟ اصلن مهم هست یا نه ؟ ممنون
من یک فایل دارم به اسم f.h توی اون کد زیر هست
void set(int x);
int get(void);
یک فایل داریم به اسم f.c توش این کد هست
#include "f.h"
static int a;
void set(int x)
{
a = x;
}
int get(void)
{
return a;
}
حالا توی main.c این کد ها است
#include <stdio.h>
#include "f.h"
int main(void)
{
set(10);
printf("%d",get());
}
وقتی کامپایل میشه کد بدون مشکل اجرا میشه . حالا سوال اینجاست
مگه چون توایع get و set چون توی یک فایل دیگه بودند نباید توی main.c اونارو extern معرفی می کردم ؟
من extern معرفی نکردم و بدون هیچ مشکلی هم اجرا شد.
سوال بعد اینکه که چرا این اجرا شد ؟ و چه موقع باید از کلمه extern استفاده کنم ؟ اصلن مهم هست یا نه ؟ ممنون