PDA

View Full Version : معنی توابع از پیش تعریف شده



The DAGON
شنبه 04 مهر 1388, 13:26 عصر
این توابع از پیش تعریف شده(از پیش ساخته شده ) چی هستند.
دارم روی سورس مینیکس کار می کنم و کد هایی مثل این

_PROTOTYPE( void _exit, (int _status) );
_PROTOTYPE( int access, (const char *_path, int _amode) );که خیلی هم تو سورسش به چشم می خورند چه معنا و مفهومی دارند.این PROTOTYPE و اندرلاین قبلش برای چی هستند؟ایا کلمه ای دیگر جاگزینش می شه؟چگونه؟

با تشکر

The DAGON
یک شنبه 05 مهر 1388, 07:51 صبح
خودم یه چیزایی حالیم شد، اون اندر لاین باعث می شه که ما بتونیم نام یک از توابع هدر های اصلی را با هدر های محلی یکی داشته باشیم(یعنی هم نام باشند) ،که بازم توش شک دارم، ولی مسئله ی حل نشده هنوز همنام بودن همه ی الگوهای تابع هست، که چرا این شکلی هستند؟

حامد مصافی
یک شنبه 05 مهر 1388, 09:49 صبح
به دنبال _PROTOTYPE در سورس بگردید، احتمالاً قبلاً تعریف شده است.

The DAGON
یک شنبه 05 مهر 1388, 10:09 صبح
#define _PROTOTYPE(function, params) function params
یک ماکرو با دو تا ورودی که ظاهرن اولی اسم تابع و دومی پارامتر ها را دریافت می کنه.تو مستنداتش که می خوندم، فهمیدم برای سازگاری با کامپایلر های K&R و ANSI این عمل انجام می شه ولی بازم طرز کارش واسم سواله؟

حامد مصافی
یک شنبه 05 مهر 1388, 11:40 صبح
پس کد های شما در پردازش از این حالت :

_PROTOTYPE( void _exit, (int _status) );
_PROTOTYPE( int access, (const char *_path, int _amode) );

به این حالت تبدیل خواهند شد:

void _exit(int _status);
int access(const char *_path, int _amode);

The DAGON
یک شنبه 05 مهر 1388, 13:00 عصر
پس این ماکرو اینطوری تحت شرایط می تونه خودش را با کامپایلر های ansi یا K&R تطبیق بده.
خیلی ممنون از راهنماییتون