انگلیسیفرانسویاسپانیایی

Ad


فاویکون OnWorks

icmake - آنلاین در ابر

icmake را در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا کنید.

این دستور icmake است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


icmake - نگهداری برنامه (ساخت) ابزار با استفاده از a C-مانند دستور زبان

خلاصه


icmake [گزینه ها] منبع[.im] [dest[.bim]] [-- [ارگ]]

icmun bimfile

شرح


Icmake(1) می تواند به عنوان جایگزین استفاده شود ساخت(1). در حالت عملکرد استاندارد خود، آن را
برنامه های زیر را فراخوانی می کند:

o icm-pp برای پیش پردازش فایل icmake

o icm-comp به بایت کد کامپایل icmake s

o icm-exec برای اجرای فایل بایت کد

Icmake به برنامه نویسان این امکان را می دهد که از یک زبان برنامه نویسی (که بسیار شبیه به زبان شناخته شده است) استفاده کنند
C-زبان برنامه نویسی) برای تعریف اقداماتی که در برنامه (پیچیده) دخیل هستند
نگهداری. برای این، icmake اپراتورهای مختلف و همچنین مجموعه ای از پشتیبانی را ارائه می دهد
عملکردهایی که ثابت کرده اند در نگهداری برنامه مفید هستند.

برنامه icmun(1) می تواند برای جداسازی فایل کد بایت (.bim) کامپایل شده استفاده شود. Icmun
در درجه اول برای تصویرسازی، آموزش و اشکال زدایی استفاده می شود.

ابزارهای ساخت سنتی پس از اصلاح فایل‌های هدر، منابع را دوباره کامپایل می‌کنند. در
زمینه از ++C توسعه برنامه اغلب ایده بدی است، زیرا اضافه کردن یک عضو جدید به a
کلاس معمولاً نیازی به کامپایل مجدد منابع کلاس ندارد. برای رسیدگی به کلاس
وابستگی icmbuld(1) ممکن است بازرسی کند کلاس ها فایل هایی که می توان از آنها برای تعریف وابستگی ها استفاده کرد
در بین کلاس ها به طور پیش فرض، وابستگی های کلاس تفسیر نمی شوند. رجوع به icmconf(7)
صفحه مرد برای جزئیات بیشتر

OPTIONS


Icmake از فایل ها و گزینه های زیر استفاده می کند:

o منبع: icmake فایل منبع اسکریپت (پسوند پیش فرض: .من هستم).

o دزد: دودویی icmake فایل اسکریپت (پیش فرض: "منبع".bim، به نام ".bim file"
در زیر).

o --: icmake جداکننده آرگومان ها جداکننده icmake استدلال از آرگومان های تصویب شده
به .bim filenl() قوس: استدلال های زیر -- به فایل .bim منتقل می شوند
همانطور که هست، و در دسترس هستند فهرست argv پارامتر به عنوان تعریف شده است icmake
فیلمنامه اصلی پارامتر دوم تابع (به بخش زیر مراجعه کنید USER تعریف شده است
توابع). برای برخی از گزینه ها (به زیر مراجعه کنید) -- جداکننده لازم نیست

Icmake از گزینه های مختلف پشتیبانی می کند که در ادامه توضیح داده شده است. را -h گزینه همه موارد دیگر را نادیده می گیرد
گزینه ها، -a گزینه همه گزینه های دیگر را به جز برای -h. از عمل باقی مانده
گزینه ها (-ب، -c، -ه ، -من، -p و -t) فقط یک مورد ممکن است مشخص شود:

o -a
نمایش اطلاعات در مورد icmakeرد شده توسط -h;

o -b
متوقف شده: به جای آن از گزینه -e استفاده کنید.

o -c
la icmake فایل منبع کامپایل شده و یک فایل .bim ایجاد می کند.

o -e
اجرا کنید icmake فایل .bim، به عنوان icmakeآرگومان فایل اول هر اضافی
آرگومان ها همانطور که هست به فایل .bim ارسال می شوند و -- نباید مشخص شود؛

o -F
نام فایل ها و پرچم ها و همچنین یک نمای کلی از تمام اقداماتی که باید توسط آنها انجام شود
icmake در جریان خروجی استاندارد نشان داده شده است.

o -h
ارائه اطلاعات استفاده و پایان icmake;

o -i
اولین استدلال این است icmake فایل منبع، فایل باینری پیش فرض است
در صورت لزوم ساخته می شود. هر آرگومان اضافی به فایل .bim ارسال می شود
همانطور که هست، و -- نباید مشخص شود؛

o -p
la icmake فایل منبع فقط پیش پردازش شده است و فایل پیش پردازش شده نوشته شده است
به icmakeآرگومان فایل دوم 's (به طور پیش فرض 'منبع'.pim);

o -q
نادیده گرفته شود، در آینده حذف خواهد شد icmake نسخه؛

o -t
استدلال زیر -t نام یک فایل .bim موقت است که حذف شده است
بعد از icmakeتماس. چه زمانی . به عنوان نام فایل .bim موقت مشخص می شود
سپس دایرکتوری موقت پیش فرض و به دنبال آن icmake's process-id، به دنبال آن
.bim استفاده می شود.

به دنبال نام فایل .bim موقت، نام فایل icmake اسکریپت منبع
باید مشخص شود. هر آرگومان اضافی همانطور که هست و به فایل .bim ارسال می شود
-- نباید مشخص شود؛ پس از تنظیم پرچم اجرایی فایل اسکریپت منبع
(chmod +x خط) و یک خط اولیه مانند زیر برای آن ارائه کنید:

#!/usr/bin/icmake -t.

la icmake اسکریپت را می توان مستقیماً نامید:

اسکریپت arg1 arg2

در این صورت icmake خط "اسکریپت" در حالی که آن را دریافت می کند اجرا می شود
استدلال خط arg1 arg2.

o -T
این گزینه باید با نام دایرکتوری که برای ذخیره سازی استفاده می شود ارائه شود
فایل های موقت به عنوان مثال، هنگام کامپایل یک icmake اسکریپت، خروجی از icmake"
پیش پردازنده یک فایل موقت است که در هنگام خروج حذف می شود. به صورت پیش فرض دایرکتوری / tmp استفاده می شود،
مگر دایرکتوری / tmp یک دایرکتوری قابل نوشتن نیست، در این صورت دایرکتوری کاربر فعلی است $ HOME
دایرکتوری استفاده می شود. نام فایل های موقت ضمنی همیشه با شناسه فرآیند شروع می شود
در حال حاضر icmake روند.

o -v
نمایش icmakeشماره نسخه و انتهای آن icmakeرد شده توسط -h

Icmun:

bimfile: دودویی icmake فایل اسکریپت

پیش پردازشگر دستورالعمل ها


دستورالعمل های پیش پردازنده زیر در دسترس هستند:

o نظر:
استاندارد C نظر (همه بین /* و */) و همچنین دیدگاه تا پایان خط (همه
مطالب خط زیر //) نادیده گرفته می شوند.

o راه اندازی شل: خط اول از icmake-اسکریپت ممکن است با شروع شود #!مسیر، که در آن
مسیر مکان مطلق را مشخص می کند icmake برنامه با ساخت فیلمنامه
قابل اجرا، می توان آن را بدون فراخوانی صریح فراخوانی کرد icmake.

به عنوان مثال، اگر خط اول یک icmakefile (قابل اجرا) 'icm' (بدون پسوند)
شامل

#!/usr/bin/icmake -i

سپس یخ ممکن است به عنوان یک فرمان صادر شود، بنابراین اجرا می شود

/usr/bin/icmake -i icm ...

روش دیگر،

#!/usr/bin/icmake -t /tmp/icm

ممکن است مورد استفاده قرار گیرد و در نتیجه اجرا شود

#!/usr/bin/icmake -t /tmp/icm icm ...

در این حالت فایل باینری در هنگام خروج حذف می شود.

o #include "نام فایل"
پرونده نام فایل در محل بخشنامه گنجانده شده است

o #include
پرونده نام فایل در محل گنجانده شده است #include بخشنامه؛ نام فایل
در دایرکتوری های جدا شده با کولون مشخص شده توسط جستجو می شود IM محیط
متغیر. اولین وقوع از نام فایل در دایرکتوری های مشخص شده توسط IM
متغیر محیطی استفاده می شود.

o #تعريف كردن شناسه [تعریف]
متن شناسه جایگزین خواهد شد تعریف. تعریف ممکن است شامل
ارجاع به شناسه های از قبل تعریف شده، با استفاده از ${identifier} قالب اگر
${identifier} (هنوز) متن تعریف نشده است ${identifier} به معنای واقعی کلمه نگهداری می شود.
برای جلوگیری از بازگشت بی نهایت حداکثر 100 ${identifier} جایگزینی مجاز است.

اگر آخرین کاراکتر در یک خط a باشد، تعاریف در خط بعدی ادامه می یابد
اسلش معکوس (\). (که در تعریف گنجانده نشده است). پیش پردازنده
رشته‌های دو کویتی را به هم می‌پیوندد و رشته‌های نقل‌قول‌شده دوبل ممکن است چندتایی را پوشش ندهند
خطوط چند جای خالی (خارج از رشته های مضاعف نقل قول) در تعاریف هستند
به یک فضای خالی منقبض شده است.

تعریف زیر #تعریف کن شناسه اختیاری است در صورت حذف،
ماکرو تعریف شده است، بنابراین می توان از آن استفاده کرد #if(n)def دستورالعمل ها (به زیر مراجعه کنید)، اما آنها
با هیچ متنی جایگزین نمی شوند icmake عبارات کد

o #ifdef شناسه
اگر شناسه ماکرو بلوک بعدی کد (تا تطبیق) تعریف شد # دیگر
or # اندیف دستورالعمل خوانده شد) بایت کامپایل شده است. در غیر این صورت، بلوک کد است
نادیده گرفته شد

o #ifndef شناسه
اگر شناسه ماکرو بود نه بلوک بعدی کد را تعریف کرد (تا تطبیق
# دیگر or # اندیف دستورالعمل شناسایی شد) بایت کامپایل می شود. در غیر این صورت، بلوک از
کد نادیده گرفته می شود

o # دیگر
خاتمه می دهد a #ifdef و #ifndef بخشنامه، معکوس کردن تصمیم پذیرش در مورد
کد زیر فقط یکی # دیگر بخشنامه می تواند مرتبط باشد #if(n)def
دستورالعمل.

o # اندیف
بلوک پیش پردازنده را با شروع تطبیق خاتمه می دهد #ifdef, #ifndef or # دیگر
بخشنامه را # اندیف دایرکتوری و تطبیق آن #if(n)def بخشنامه باید باشد
در همان فایل مشخص شده است.

o # وندف شناسه
برداشتن شناسه از مجموعه نمادهای تعریف شده این تاثیری بر آن ندارد
مشخصات هر نماد از قبل تعریف شده که در آن شناسه تعریف
استفاده شده است. اگر شناسه تعریف نشده است اخطار داده شده است.

داده ها انواع


Icmake این نوع داده ها را پشتیبانی می کند:

o ASCII شخصیت ثابت
ثابت های کاراکتر ASCII از یک کاراکتر تشکیل شده است که با یک یا دو احاطه شده است
نقل قول ها شخصیت های منفرد (مثلا 'آ') خود شخصیت را نشان می دهد. استاندارد
دنباله های فرار (به عنوان مثال، '\n') پشتیبانی می شوند و استاندارد تبدیل شده آنها را نشان می دهند
ارزش (مثلا '\n' نشان دهنده مقدار ascii 10 (اعشاری)). فرار غیر استاندارد
دنباله ها (مثلا '\ایکس') نشان دهنده کاراکتر ascii به دنبال کاراکتر فرار است
(بنابراین '\ایکس' برابر است 'ایکس'). دنباله های فرار متشکل از سه رقم اکتال نشان دهنده
کاراکتر ascii مربوط به مقدار هشتی مدول 256 (به عنوان مثال، '\123').
دنباله های فرار متشکل از یک x و به دنبال آن دو رقم هگزادسیمال را نشان می دهند
کاراکتر ascii مربوط به مقدار هگزادسیمال (به عنوان مثال، '\xa4').

o INT
مقادیر یکپارچه، اعم از -0x8000 از طریق 0x7fff. INT ثابت ممکن است باشد
به عنوان اعداد اعشاری (شروع با ارقام 1 تا 9)، اعداد هشتی مشخص می شود
اعداد هگزا دسیمال (با 0 شروع می شود و به دنبال آن یک یا چند رقم هشتی قرار می گیرد).
(شروع با 0x، به دنبال یک یا چند رقم هگزادسیمال) یا به عنوان ASCII
ثابت های کاراکتر

o رشته
متغیرهای متن ثابت های رشته ای با گیومه های دوگانه مشخص می شوند. رشته های متعدد
ثابت ها ممکن است به هم پیوسته باشند، اما یک ثابت رشته ممکن است چندتایی را در بر نگیرد
خطوط ثابت‌های رشته‌ای که فقط با فضای سفید از هم جدا شده‌اند (یعنی جاهای خالی، خطوط جدید،
comment) به هم پیوسته اند و نشان دهنده یک رشته ثابت هستند. برای نشان دادن یک
انتهای خط در یک رشته ثابت از \n دنباله فرار

ثابت های کاراکتر ASCII احاطه شده توسط گیومه های دوتایی نیز می توانند در آن استفاده شوند
عبارات حسابی اگر یکی از عملوندها an باشد INT. شخصیت مجرد
ثابت رشته باید ثابت باشد و نمی تواند a باشد رشته متغیر.

به همین ترتیب، ثابت های کاراکتر ASCII احاطه شده توسط نقل قول های منفرد ممکن است در استفاده شود
موقعیت هایی که یک عملوند رشته ای مورد انتظار است.

o فهرست
یک ساختار داده حاوی مجموعه‌ای از مواردی که به صورت جداگانه در دسترس هستند رشته ارزش های. چه زمانی
یک لیست حاوی عناصر است، اولین عنصر آن با شاخص 0 نشان داده می شود.

o از درجه اعتبار ساقط
با تعاریف تابع برای نشان دادن اینکه تابع a بر نمی گرداند استفاده می شود
ارزش.

متغیرها را می توان در سطح جهانی و همچنین در هر سطح محلی در داخل تعریف کرد
کارکرد. هنگامی که در داخل توابع تعریف شده است، استاندارد C قوانین محدوده و دید
درخواست دادن. به عنوان مثال، متغیرهای محلی فقط می توانند به صورت خود یا در تودرتوهای عمیق تر مورد استفاده قرار گیرند
بلوک‌ها، دید آنها در بلوک‌های عمیق‌تر تودرتو با تعریف یکسان پوشانده می‌شود
نام متغیر در داخل آن بلوک های عمیق تر تودرتو. متغیرها به شدت تایپ می شوند و
نمی تواند نوع داشته باشد از درجه اعتبار ساقط.

وقتی متغیرها تعریف می شوند ممکن است مقداردهی اولیه شوند. مقداردهی عبارت هستند، که
می تواند از توابع از قبل یا تعریف شده توسط کاربر، مقادیر ثابت و مقادیر متغیرهایی که هستند استفاده کند
در نقطه تعریف قابل مشاهده است.

از پیش تعریف شده ثابت ها


ثابت های زیر از پیش تعریف شده اند icmake. همه ثابت هستند INT ارزش های:

─────────────────────────────────
ارزش نماد در نظر گرفته شده برای
─────────────────────────────────
O_ALL 8 makelist
O_DIR 2 makelist
O_FILE 1 فهرست نهایی
فهرست نهایی O_SUBDIR 4
─────────────────────────────────
OFF 0 اکو
ON 1 اکو
─────────────────────────────────
P_CHECK 0 تماس های سیستمی
سیستم P_NOCHECK 1 تماس می گیرد
─────────────────────────────────
آمار S_IEXEC 32
آمار S_IFCHR 1
آمار S_IFDIR 2
آمار S_IFREG 4
آمار S_IREAD 8
آمار S_IWRITE 16
─────────────────────────────────

ثابت های زیر وابسته به معماری هستند:

────────────────────────────────────────────────── ────────────
علامت 1 وقتی روی پلت فرم تعریف می شود، در غیر این صورت 0
────────────────────────────────────────────────── ────────────
یونیکس یونیکس، معمولا با کامپایلر gcc گنو
یونیکس ممکن است به طور متناوب در دسترس باشد
لینوکس x86 دارای لینوکس (معمولاً با gcc)
ممکن است LINUX به طور متناوب در دسترس باشد
M_SYSV، M_UNIX x86 در حال اجرا SCO/Unix
_POSIX _SOURCE یونیکس با کامپایلر سازگار با Posix
__hpux HP-UX، با کامپایلر اصلی HP
────────────────────────────────────────────────── ────────────

اپراتورها


int-typed عملوند(های):

معرفی C عملگرها در دسترس هستند (به جز عملگرهای اشاره گر، به عنوان icmake پشتیبانی نمی کند
اشاره گر). آنها مانند خود عمل می کنند Cهمتایان زبان برنامه نویسی

رشته ای تایپ شده عملوند(های):

برای رشته نوع متغیرها و/یا ثابت عملگرهای زیر در دسترس هستند (a و b
نشان دادن رشته متغیرها یا ثابت ها):

o a + b: جدید را برمی گرداند رشته مقدار حاوی الحاق رشته ارزش a
و b. توجه داشته باشید که رشته ثابت ها ممکن است مستقیماً به هم متصل شوند (بدون استفاده از +
عملگر)، به عنوان مثال، دو خط زیر هر دو رشته را تعریف می کنند "سلام جهان ":

"سلام دنیا"
"سلام" + "دنیا"

o a += b: a باید یک رشته متغیر، که به رشته متغیر یا مقدار b is
ضمیمه شد

o مقایسه رشته ها: عملگرها == != <= >= < > != و == ممکن است اعمال شود رشته
مقادیر یا متغیرها، در صورت موفقیت آمیز بودن مقایسه، 1 و در غیر این صورت 0 را برمی گرداند.
مقایسه به حروف کوچک و بزرگ حساس است و از ترتیب یا کاراکترهای تعریف شده پیروی می کند
در ASCII مجموعه کاراکتر.

o !a: بولی ! (نه) اپراتور 1 را برمی گرداند اگر رشته a خالی است، در غیر این صورت 0 است
برگشت

o a جوانتر b, a جدیدتر b: 1 فایل if را برمی گرداند a جدیدتر از فایل است b. به عنوان مثال،
"source.cc" جدیدتر "source.o". فایل ها a و b لازم نیست وجود داشته باشد: اگر هر دو وجود نداشته باشند
وجود 0 برگردانده می شود. اگر b وجود ندارد، 1 برگردانده می شود. اگر a وجود ندارد 0 است
بازگشت؛ اگر به یک اندازه قدیمی باشند 0 برگردانده می شود. ( وجود دارد() تابع از پیش تعریف شده
(بخش زیر را ببینید از پیش تعریف شده توابع) را می توان برای آزمایش صریح اینکه آیا a
فایل وجود دارد).

o a بزرگتر b: تبدیل 1 فایل if a قدیمی تر از فایل است b. به عنوان مثال، "libprog.a" بزرگتر
"source.o". فایل ها a و b لازم نیست وجود داشته باشد: اگر هر دو وجود نداشته باشند 0 است
بازگشت؛ اگر a وجود ندارد، 1 برگردانده می شود. اگر b وجود ندارد 0 برگردانده می شود. اگر
آنها به همان اندازه قدیمی هستند 0 برگردانده می شود.

o []: عملگر index یک کاراکتر را از یک متغیر رشته یا ثابت بازیابی می کند: it
یک رشته را به صورت an برمی گرداند rvalue. بنابراین، عبارت زیر OK را جمع آوری می کند:

// فرض کنید str1 و str2 رشته هستند
str1 = str2[3];

اما عبارت زیر کامپایل نمی شود:

str2[3] = "a";

اگر مقدار شاخص نامعتبر ارائه شود، یک رشته خالی برگردانده می شود.

o عملگر «بکتیک» (`رشته cmd`)
رشته ای که بین دو بکتیک قرار می گیرد توسط the اجرا می شود پاپن(3) عملکرد. در
خروجی استاندارد بدست آمده توسط دستوری که در آرگومان رشته ای ذخیره می شود است
به عنوان یک لیست بازگشت. یک لیست خالی نشان می دهد که دستور نمی تواند اجرا شود.
دستوری که می تواند اجرا شود اما هیچ خروجی تولید نمی کند یک لیست را برمی گرداند
حاوی یک عنصر خالی خروجی جریان خطای استاندارد فرمان نیست
توسط اپراتور backtick جمع آوری شده است. با این حال، تغییر جهت پوسته استاندارد می تواند باشد
برای جمع آوری خروجی جریان خطای استاندارد استفاده می شود. مثال:

printf(`"ls"`); // عناصر را در چاپ می کند
// دایرکتوری فعلی

تابع از پیش تعریف شده eval(رشته cmd) دقیقاً مانند بکتیک رفتار می کند
عملگر: مترادف هستند.

لیست تایپ شده عملوند(های):

برای فهرست نوع متغیرها و/یا مقادیر عملگرهای زیر در دسترس هستند:

o a + b: جدید را برمی گرداند فهرست مقدار حاوی الحاق فهرست ارزش a و
b. این هست نه یک عملیات مجموعه: اگر یک عنصر در هر دو ظاهر شود a و در b، آن ها خواهند
دو بار در لیست حاصل ظاهر می شود (مجموعه-افزودن توسط داخلی ارائه شده است
تابع لیستیونیون).

o a - b: جدید را برمی گرداند فهرست مقدار حاوی عناصر موجود در a که حضور ندارند
in b. این is یک عملیات مجموعه تفاوت: لیست برگشتی شامل تمام عناصر است
in a که عناصری از b.

o a += b: عناصر در b به عناصر در اضافه می شوند a، که باید a فهرست
متغیر. این هست نه یک عملیات مجموعه

o a -= b: عناصر در b از عناصر موجود در حذف می شوند a، که باید a فهرست
متغیر. این is یک عملیات مجموعه: همه عناصر a که در آن یافت می شود b هستند
حذف شده از a.

o مقایسه های برابری را فهرست کنید: عملگرها != و == ممکن است اعمال شود فهرست ارزش ها یا
متغیرها اپراتور == اگر هر دو لیست عنصر به عنصر یکسان باشند، 1 را برمی گرداند
عناصر، در غیر این صورت 0 برگردانده می شود. اپراتور != نتیجه را معکوس می کند ==.

o !a: بولی ! اگر اپراتور 1 را برمی گرداند فهرست a خالی است، در غیر این صورت 0 است
برگشت

o []: عملگر فهرست یک عنصر لیست را از یک متغیر لیست بازیابی می کند: a را برمی گرداند
رشته به عنوان rvalue. بنابراین، عبارت زیر OK را جمع آوری می کند:

// فرض کنید lst یک لیست است، str یک رشته است
str = lst[3];

اما عبارت زیر کامپایل نمی شود:

lst[3] = str;

اگر مقدار شاخص نامعتبر ارائه شود، یک رشته خالی برگردانده می شود.

ریخته گری:

تیپ کست ممکن است با استفاده از استاندارد انجام شود C cast-operator to cast:

o رشته ها به ints و بالعکس ((int)"123"، (رشته)55)

o رشته ها به لیست ها (فهرست اول = (لیست) "سلام")

FLOW کنترل


Icmake زیر مجموعه زیر را ارائه می دهد Cاظهارات آنها را می توان مانند در استفاده کرد C
زبان برنامه نویسی.

o بیان ;
بیانیه بیان ساده؛

o عبارت مرکب
متغیرها از هر نوع ممکن است در هر جایی از هر ترکیبی تعریف و مقداردهی اولیه شوند
بیانیه. در دید یک متغیر از نقطه تعریف شروع می شود.

o if (وضعیت) بیانیه
در داخل شرط ممکن است یک متغیر تعریف و مقداردهی شود. به عنوان مثال،

if (string str = getText())
process(str);

در این مثال ، روند اگر نامیده نمی شود getText () یک رشته خالی برمی گرداند. در
متغیر خ قبل و بعد از آن وجود ندارد if بیانیه.

o if (وضعیت) بیانیه دیگر بیانیه
مانند عبارت قبلی، در داخل شرط ممکن است یک متغیر تعریف شود و
اولیه شد.

o برای (ابتدا; وضعیت؛ افزایش) بیانیه
متغیرها (از یک نوع واحد) ممکن است مقداردهی اولیه شوند (و به صورت اختیاری تعریف شوند).
init انجام بخش. init انجام, شرط و افزایش بخش ها ممکن است خالی بمانند. در
بخش شرط خالی به عنوان «همیشه» تفسیر می شود درست".

o در حین (وضعیت) بیانیه
در داخل شرط ممکن است یک متغیر تعریف و مقداردهی شود.
یک مکمل do ... در حالی که() بیانیه در دسترس نیست توجه داشته باشید که تعریف الف
متغیر، با استفاده از یک عبارت اولیه به این معنی است که مقداردهی اولیه
بیان در هر تکرار اجرا می شود در حین بیانیه. پس موارد زیر
دستور هرگز تمام نمی شود و یک جریان بی پایان از مقادیر 10 را نمایش می دهد:

در حالی که (int x = 10)
printf(x--، "\n");

o بازگشت؛و برگشت اصطلاح؛
ساده برگشت عبارات را می توان در استفاده کرد از درجه اعتبار ساقط توابع، و برگشت بیان
عبارات در انواع دیگر توابع استفاده می شود. کارکرد اصلی دارای نوع برگشتی است
از درجه اعتبار ساقط و غیره در اصلی فقط ساده برگشت می توان از عبارات استفاده کرد. به طور پیش فرض an icmake
مقدار خروجی اسکریپت برابر با 0 است. از تابع داخلی استفاده کنید خروج (به زیر مراجعه کنید) تا مشخص شود
هر مقدار خروجی دیگر

Be توصیه کرد: رفتار توابع غیر باطل که مقادیر را برمی گرداند، تعریف نشده است.

o شکستن
برگ برای و در حین اظهارات، نادیده گرفتن شرایط بیانیه.

o ادامه دادن
با تکرار بعدی a ادامه می یابد برای or در حین بیانیه.

o خروج (بیان)
اجرای an را پایان می دهد icmake-اسکریپت را بیان باید به یک ارزیابی شود INT
مقدار، که به مقدار خروجی اسکریپت تبدیل می شود.

از پیش تعریف شده توابع


Icmake توابع از پیش تعریف شده زیر را ارائه می دهد که می توان از آنها در هر جایی استفاده کرد icmake
اسکریپت ها نمای کلی زیر بر اساس نام تابع به ترتیب حروف الفبا مرتب شده است.

o از درجه اعتبار ساقط سر آرگ (رشته h)
عملکرد کمکی از exec() (به زیر مراجعه کنید در exec()): "سر استدلال" را تعریف می کند،
برای استفاده با exec(). به طور پیش فرض، "سر آرگومان" یک رشته خالی است.

o از درجه اعتبار ساقط ارگ دم (رشته t)
عملکرد کمکی از exec() (به زیر مراجعه کنید در exec()): "دم استدلال" را تعریف می کند،
برای استفاده با exec(). به طور پیش‌فرض، «دم استدلال» یک رشته خالی است.

o INT ascii(رشته s)
کاراکتر اول را برمی گرداند s به عنوان int; به عنوان مثال، ascii ("A") بازده 65;

o رشته ascii(int i)
بازده i به عنوان یک رشته، به عنوان مثال، ASCII(65) رشته را برمی گرداند "به";

o رشته change_base(رشته فایل، رشته پایگاه جدید)
نام پایه را تغییر می دهد پرونده، نام تغییر یافته را برمی گرداند. به عنوان مثال،
change_base("/path/demo.im", "خارج") بازده "/path/out.im";

o رشته change_ext(رشته فایل، رشته بعدی جدید)
پسوند را تغییر می دهد پرونده، نام تغییر یافته را برمی گرداند. به عنوان مثال،
rss_changeExt("source.cc"، "o") بازده "source.o";

o رشته change_path (رشته فایل، رشته مسیر جدید)
مشخصات مسیر را تغییر می دهد پرونده، نام تغییر یافته را برمی گرداند. به عنوان مثال،
change_path("tmp/binary", "/ usr / bin") بازده "/usr/bin/binary". توجه داشته باشید که
/-در صورت نیاز جداکننده درج می شود.

o رشته chdir(رشته newdir)
دایرکتوری کاری اسکریپت را تغییر می دهد، dir قبلی را به صورت مطلق برمی گرداند
مسیر.

استفاده کنید chdir (".") برای به دست آوردن دایرکتوری کاری فعلی، chdir ("") ممکن است عادت کرده باشد
دایرکتوری کار راه اندازی را دریافت کنید (این عملکرد در نسخه ها شکسته شد
قبل از ساعت 7.00:XNUMX، اما اکنون عملیاتی است). تابع را خاتمه می دهد
icmake-اسکریپت در صورتی که مشخص شده باشد newdir وجود ندارد.

o رشته chdir(int چک کردن، رشته newdir)
عملکرد مشابه عملکرد قبلی، اما با مشخص کردن بررسی as
P_NOCHECK. تابع اسکریپت را خاتمه نمی دهد. بلکه آن را برمی گرداند
فهرست کار فعلی اسکریپت

o cmdhead(رشته h)
عملکرد کمکی از exec() (به زیر مراجعه کنید در exec()): یک "سر فرمان"، به را تعریف می کند
با استفاده شود exec(). به طور پیش‌فرض، «سر فرمان» یک رشته خالی است.

o cmdtail(رشته t)
عملکرد کمکی از exec() (به زیر مراجعه کنید در exec()): یک «دم فرمان»، به را تعریف می کند
با استفاده شود exec(). به طور پیش فرض، «دم فرمان» یک رشته خالی است.

o پژواک (int انتخاب کردن)
کنترل بازتاب برنامه های فراخوانده شده (و آرگومان های آنها) را مشخص کنید OFF در صورت تکرار
درخواست نمی شود. به صورت پیش فرض پژواک (روشن) استفاده می شود.

o رشته عنصر( فهرست مطالب، فهرست (و یا رشته) var)
عملکردهای یکسان با عملگر شاخص: به نمایه مراجعه کنید ([]) اپراتور در
بخش اپراتورها.

o فهرست eval(رشته خ)
این تابع همانند عملگر backtick عمل می کند. مثال ارائه شده با
بنابراین عملگر backtick می تواند به این صورت نوشته شود:

printf(eval("ls")); // عناصر را در جریان چاپ می کند
// فهرست راهنما

o exec(رشته cmd ...)
دستور را با آرگومان اجرا می کند. هر آرگومان با پیشوند خواهد بود arghead()"
استدلال و پس از نصب توسط argtail()استدلال توجه داشته باشید که هیچ جای خالی درج نشده است
میان arghead()محتویات، استدلال مناسب، و argtail()استدلال همه
بنابراین آرگومان‌های اصلاح‌شده به هم پیوسته‌اند، این بار با جاهای خالی جدا شده‌اند
سپس cmdhead()محتویات ' بین دستور و آرگومان اول درج می شود
(در هر دو طرف با جاهای خالی مشخص شده است) و cmdtail()مطالب پیوست شده است
به آرگومان ها (دوباره با یک جای خالی جدا شده اند). PATH برای مکان یابی جستجو می شود
CMD. 0 برگردانده می شود.

o exec(int checkcmd، رشته cmd ...)
عملکرد مشابه عملکرد قبلی، اما با مشخص کردن بررسی as
بررسی نشده تابع اسکریپت را خاتمه نمی دهد. بلکه آن را برمی گرداند
وضعیت خروج فرمان یا 0x7f00 اگر دستور پیدا نشد

o اجرا (رشته cmd رشته cmdhd، رشته ارغد، ... رشته argtl، رشته cmdtl)
مثل exec()، اما دستور head/tail و سر/دم آرگومان باید مشخص شود.

دستور واقعی اجرا شده با شروع می شود CMD، به دنبال cmdhd. بعدی یک سری است
از آرگومان ها در ادامه می آید که هر کدام توسط ارغد و argtl. فرمان با خاتمه می یابد
cmdtl. 0 برگردانده می شود

o اجرا (int چک کردن، رشته cmd رشته cmdhd، رشته ارغد، ... رشته argtl،
رشته cmdtl)
عملکرد مشابه عملکرد قبلی، اما با مشخص کردن بررسی as
بررسی نشده تابع اسکریپت را خاتمه نمی دهد. بلکه آن را برمی گرداند
وضعیت خروج فرمان یا 0x7f00 اگر دستور پیدا نشد

o INT وجود دارد (رشته فایل)
مقدار غیر صفر را اگر پرونده وجود دارد، در غیر این صورت 0 برگردانده می شود.

o فهرست fgets(رشته فایل، فهرست انحراف)
توجه: in icmake نسخه 8.00.00 نمونه اولیه این تابع تغییر کرد
فهرست fgets(رشته فایل، INT انحراف) به فهرست fgets(رشته فایل، فهرست انحراف).

خط بعدی در افست موجود در چاپ افست از خوانده می شود پرونده. عبور از
لیست خالی به fgets خواندن پرونده از آغاز آن

فهرستی را برمی گرداند که به عنوان اولین عنصر حاوی محتویات خط خوانده شده است
(بدون \n خط پایان دهنده)، به عنوان عنصر دوم آن، پایان دهنده خط «\n'
(در صورت مواجه شدن با)، و به عنوان عنصر سوم آن رشته OK اگر یک خط با موفقیت انجام شد
خواندن، FAIL اگر خواندن از فایل انجام نشد هنگام خواندن در EOF یک لیست خالی است
بازگشت. لیست برگشتی ممکن است حاوی عناصر اضافی باشد که در داخل هستند
استفاده شده توسط fgets هنگام خواندن خط بعدی

برای خواندن چند خط، با ارسال یک لیست خالی به عنوان شروع کنید می شود استدلال دوم
برای خواندن خطوط بعدی، لیستی که قبلاً برگردانده شده است را به آن منتقل کنید fgets دوم
بحث و جدل.

در اینجا یک مثال نشان می دهد که چگونه یک فایل کامل را بخوانید:

لیست مجدد
در حالی که (1)
{
ret = fgets ("نام فایل"، ret);
اگر (!ret)
زنگ تفريح؛
فرآیند(ret[0]، ret[1]);
}

o INT fprintf(رشته نام فایل، ...)
همه آرگومان ها (با کاما جدا شده) را به فایل اضافه می کند نام فایل. تعداد را برمی‌گرداند
آرگومان های چاپ شده

o INT fprintf(رشته نام فایل، رشته قالب ، ...)
همه آرگومان ها (با کاما جدا شده) را به فایل اضافه می کند نام فایل. تعداد را برمی‌گرداند
آرگومان های چاپ شده

If قالب حاوی متغیرهایی % 1 .. %n خروجی قالب بندی شده است (همچنین رجوع کنید به
strformat). توجه داشته باشید که در این مورد شمارش آرگومان (همچنین) فراتر از مقدار شروع می شود
رشته فرمت: اولین آرگومان زیر قالب تحت این عنوان مورد اشاره قرار گرفته است %1.

o رشته get_base(رشته فایل)
نام پایه را برمی گرداند پرونده. نام پایه فایل بدون پیشوند مسیر آن است
و بدون تمدید آن. پسوند تمام اطلاعاتی است که از فینال شروع می شود
نقطه در نام فایل اگر نقطه نهایی یافت نشد، نام فایل، نام پایه است.
به عنوان مثال، نام پایه آب برابر است a، نام پایه abc برابر است آب، پایه
نام a/b/c برابر است c.

o رشته getch()
کلید فشار داده شده بعدی را به عنوان یک رشته برمی گرداند (فشردن «Enter» لازم نیست).

o رشته get_dext(رشته فایل)
پسوند را برمی گرداند پرونده، از جمله نقطه جداکننده. پسوند تمام است
اطلاعاتی که از نقطه پایانی نام فایل شروع می شود.

اگر نقطه نهایی پیدا نشد، یک رشته خالی برگردانده می شود.

o فهرست getenv(رشته انووار)
مقدار متغیر محیطی را برمی‌گرداند envvar در لیستی حاوی دو عنصر:

اولین عنصر نشان می دهد که آیا متغیر محیطی تعریف شده است (مقدار
"1") یا نه (ارزش "0");
عنصر دوم مقدار متغیر محیطی را نشان می دهد.

متغیرهای محیطی به این شکل هستند متغیر = مقدارو اگر لیست تعریف شده باشد
عنصر دوم شامل ارزش. اگر مقدار خالی باشد، متغیر تعریف می شود، اما
هیچ متنی با آن مرتبط نیست.

o رشته get_ext(رشته فایل)
پسوند را برمی گرداند پرونده، به جز نقطه جداکننده. پسوند تمام است
اطلاعاتی که از نقطه پایانی در نام فایل شروع می شود.

اگر نقطه نهایی پیدا نشد، یک رشته خالی برگردانده می شود.

o INT getpid()
شناسه فرآیند مفسر کد بایت icmake را برمی‌گرداند icm-exec.

o رشته می گیرد ()
خط بعدی خوانده شده از صفحه کلید را به صورت a برمی گرداند رشته. خط وارد شد
صفحه کلید باید با یک کلید "Enter" خاتمه یابد، که در کلید بازگشتی ذخیره نمی شود
رشته

o رشته get_path (رشته فایل)
پیشوند path-را برمی گرداند پرونده. پیشوند مسیر تمام اطلاعات تا (و) است
از جمله) جداکننده دایرکتوری نهایی (که بسته به عملکرد آن است
سیستم، یک اسلش رو به جلو یا معکوس).

اگر مسیری پیدا نشد، یک رشته خالی برگردانده می شود.

o INT listfind(list اول، رشته خ)
اولین شاخص را به داخل برمی‌گرداند اول جایی که رشته خ یافت می شود، یا -1 اگر اول نمیکند
شامل خ.

o INT لیستلن (لیست l)
تعداد عناصر موجود را برمی‌گرداند فهرست.

o فهرست listunion (فهرست lhs، فهرست rhs)
فهرستی حاوی اتحاد عناصر موجود در آن را برمی‌گرداند lhs و rhs.

o فهرست listunion (فهرست اول، رشته خ)
فهرستی حاوی اتحاد عناصر موجود در آن را برمی‌گرداند اول و خ.

o فهرست makelist(رشته ماسک)
لیستی از تمام فایل های منطبق را برمی گرداند ماسک. به عنوان مثال، makelist("*.c") لیستی را برمی گرداند
حاوی تمام فایل هایی که به .c.

o فهرست makelist(نوع رشته ماسک)
مانند تابع قبلی است، اما نوع عناصر دایرکتوری ممکن است باشد
به عنوان اولین آرگومان آن مشخص شده است:

معنی نماد
IS_ALL تمام ورودی های دایرکتوری را دریافت می کند
IS_DIR همه دایرکتوری ها از جمله . و ..
IS_FILE لیستی از فایل ها را دریافت می کند
IS_SUBDIR همه زیر شاخه ها را به دست آورد

توجه داشته باشید که الگوی * با ورودی های پنهان تحت عملیات نوع یونیکس مطابقت نخواهد داشت
سیستم های. استفاده کنید .* برای آن.

o فهرست makelist(رشته ماسک جدیدتر، رشته مقایسه کردن)
فهرستی از همه فایل‌های منطبق را که جدیدتر از ماسک ارائه شده هستند را برمی‌گرداند
مقایسه کردن اپراتور جوانتر ممکن است به جای استفاده شود جدیدتر. توجه داشته باشید که جدیدتر و
جوانتر عملگر هستند نه رشته

o فهرست makelist([int = IS_FILE،] رشته ماسک جدیدتر، رشته مقایسه کردن)
همانند عملکرد قبلی، اما نوع ممکن است به عنوان در مشخص شود فهرست makelist(نوع
رشته ماسک).

o makelist(رشته ماسک مسن تر، رشته مقایسه کردن)
به بالا نگاه کن؛ لیستی از فایل هایی که قدیمی تر از comparefile هستند را برمی گرداند.

o makelist(نوع رشته ماسک مسن تر، رشته مقایسه کردن)
همانند عملکرد قبلی، اما نوع ممکن است به عنوان در مشخص شود فهرست makelist(نوع
رشته ماسک).

o INT printf (...)
همه آرگومان‌ها (با کاما از هم جدا شده) را برای صفحه نمایش نشان می‌دهد (یعنی جریان خروجی استاندارد).
تعداد آرگومان های چاپ شده را برمی گرداند.

o INT printf(رشته قالب ، ...)
همه آرگومان‌ها (با کاما از هم جدا شده) را برای صفحه نمایش نشان می‌دهد (یعنی جریان خروجی استاندارد).
تعداد آرگومان های چاپ شده را برمی گرداند (the قالب رشته به عنوان یک آرگومان به حساب می آید).

If قالب حاوی متغیرهایی % 1 .. %n خروجی قالب بندی شده است (همچنین رجوع کنید به
strformat).

o INT putenv(رشته انووار)
می افزاید: envvar به جریان (icmake) محیط از قالب استفاده کنید: "VAR=value".
0 را برمی گرداند.

o رشته تغییر اندازه (رشته خ، INT طول جدید) یک کپی از رشته را برمی گرداند خ، تغییر اندازه به
طول جدید شخصیت ها. اگر طول جدید منفی است سپس یک رشته خالی برگردانده می شود،
if طول جدید بیش از خ طول و سپس کاراکترهای تازه اضافه شده مقداردهی اولیه می شوند
به فضاهای خالی

o INT sizeof(لیست l)
منسوخ شده: استفاده کنید گوش دادن.

o INT sizeoflist(list l)
منسوخ شده: استفاده کنید گوش دادن.

o فهرست stat(رشته ورود)
بازده آمار(2) اطلاعات ورودی دایرکتوری ورود به عنوان یک لیست لیست برگشتی
دارای دو عنصر است: عنصر 0 همان است صفت ارزش، عنصر 1 شامل اندازه است
پرونده.

ویژگی‌ها به‌عنوان پرچم‌های بیتی برگردانده می‌شوند که از موارد از پیش تعریف‌شده زیر تشکیل شده‌اند
ثابت ها:

S_IFCHR S_IFDIR S_IFREG
S_IREAD S_IWRITE S_IEXEC

مشاهده آمار(2) صفحه دستی برای معانی این ثابت ها.

o فهرست آمار(بررسی، رشته ورود)
همانند عملکرد قبلی، اما با مشخص کردن بررسی as P_NOCHECK تابع
فیلمنامه را خاتمه نمی دهد بلکه برمی گردد آمارمقدار بازگشتی (2)

o INT strchr(رشته خ، رشته کاراکترها)
اولین شاخص را به داخل برمی‌گرداند خ جایی که هر یک از شخصیت ها در آن هستند تانک ها یافت می شود، یا -1
if خ هیچ یک از شخصیت های موجود در آن را شامل نمی شود تانک ها.

o INT strlen(رشته خ)
تعداد کاراکترهای موجود را برمی‌گرداند خ (بدون احتساب 0 نهایی).

o INT strfind(رشته انبار کاه، رشته سوزن)
نمایه را برمی گرداند انبار کاه جایی که سوزن یافت می شود، یا -1 اگر سوزن شامل نمی شود
in انبار کاه.
این تابع بود نام strstr() in نسخه قبل از 7.00.

o INT strformat(رشته قالب،...)
یک رشته قالب‌بندی شده را با استفاده از مکان‌نماهای % 1 .. % 2 برای آدرس‌دهی آرگومان‌ها برمی‌گرداند
فرمت زیر
مثال:

باطل اصلی ()
{
int i = 10؛
int j = 20;
رشته s1;
رشته s2;
// رویکرد سنتی:
s1 = (رشته)i + " " + (رشته)j + " " + (رشته)i;
// با استفاده از strformat:
s2 = strformat("%1 %2 %1"، i, j);
printf("s1 = %1, s2 = %2\n", s1, s2);
}

o رشته strlwr(رشته s)
یک کپی با حروف کوچک را برمی گرداند s.

o فهرست strtok(رشته خ، رشته جداکننده ها)
فهرستی حاوی تمام زیررشته‌ها را برمی‌گرداند خ با یک یا چند جدا شده است
کاراکترهای (پیاپی) در جداکننده ها. به عنوان مثال، strtok("سلام icmake's+world" " +")
لیستی حاوی سه رشته را برمی گرداند "سلام", "icmake's"و "جهان".

o رشته استرپر (رشته s)
یک کپی با حروف بزرگ برمی‌گرداند s.

o رشته substr(رشته متن، INT انحراف، INT شمردن)
یک زیر رشته از متن، شروع از چاپ افست، شامل تعداد دفعات مشاهده شخصیت ها. اگر
چاپ افست بیش از (یا برابر) اندازه یا اگر رشته است تعداد دفعات مشاهده <= 0، سپس یک رشته خالی
برگردانده می شود. اگر چاپ افست کمتر از 0 است سپس از 0 استفاده می شود.

o INT سیستم (رشته فرمان)
اجرا می کند فرمان. مقدار برگشتی مقدار خروجی فرمان اجرا شده را نشان می دهد. در
رشته فرمان ممکن است شامل کاراکترهای تغییر مسیر و/یا لوله کشی باشد.

o INT سیستم (بین چک کردن، رشته فرمان)
عملکرد مشابه عملکرد قبلی، اما با مشخص کردن بررسی as
بررسی نشده تابع اسکریپت را خاتمه نمی دهد. بلکه آن را برمی گرداند
وضعیت خروج فرمان یا 0x7f00 اگر دستور پیدا نشد

o رشته اصلاح (رشته s)
یک کپی از s بدون فضاهای سفید پیشرو و دنباله دار.

o رشته trimleft(رشته خ)
یک کپی از s بدون فضاهای سفید پیشرو

o رشته اصلاح (رشته s)
یک کپی از s بدون فاصله های سفید دنباله دار

USER تعریف شده است توابع


از درجه اعتبار ساقط اصلی

Icmake اسکریپت ها باید با یک تابع تعریف شده توسط کاربر ارائه شوند اصلی. کارکرد اصلی است
سه پارامتر اختیاری که ممکن است از آخرین پارامتر حذف شود (envp) به اول
(بحث کردن) مانند در C. نمونه اولیه کامل آن (توجه داشته باشید: از درجه اعتبار ساقط نوع برگشت):

void main (int argc، list argv، list envp)

In اصلی (),

o بحث کردن تعداد عناصر موجود در آن را نشان می دهد argv;

o argv حاوی آرگومان‌هایی است که عنصر 0 برابر با نام .bim است
فایل؛

o envp شامل متغیرهای "محیط" است. کارکرد گوش دادن را می توان به استفاده
تعداد عناصر آن را تعیین کنید. عناصر در envp فرم
متغیر = مقدار. روش دیگر، تابع getenv می توان برای بازیابی a استفاده کرد
متغیر محیطی خاص بلافاصله مثال:

void main (int argc، list argv)
{
لیستی برای کامپایل
int idx;

اگر (argc == 1)
usage(element(0, argv));

if (toCompile = تغییر یافته ("*.cc"))
{
برای (idx = طول (toCompile); idx--; )
کامپایل(عنصر(idx، toCompile));

if (getenv("dryrun")[0] == "0")
پیوند (عنصر (2، argv));
}
}

داشتن مقداردهی اولیه همه متغیرهای سراسری به ترتیب تعاریفشان اصلی توسط
icmakeسیستم پشتیبانی زمان اجرا برای انجام وظایف اضافی.

علاوه بر این مشخص کاربر توابع

توابع اضافی ممکن است تعریف شود. پس از تعریف، می توان این توابع را فراخوانی کرد. رو به جلو
ارجاع متغیرها یا توابع پشتیبانی نمی شود، اما به صورت بازگشتی فراخوانی می شود
توابع است. از آنجایی که اعلان های تابع پشتیبانی نمی شوند، بازگشت غیر مستقیم پشتیبانی نمی شود
پشتیبانی می شود.

توابع تعریف شده توسط کاربر باید دارای عناصر زیر باشند:

o نوع برگشتی تابع که باید یکی از آنها باشد خالی، بین المللی، رشته or فهرست. آنجا
هیچ نوع پیش فرضی نیست

o نام تابع، به عنوان مثال، گردآوری.

o یک لیست پارامتر که صفر یا چند پارامتر جدا شده با کاما را تعریف می کند. پارامترها
خود از یک نام نوع (بین المللی، رشته، یا فهرست) به دنبال آن
شناسه پارامتر به عنوان مثال، (رشته مجموعه، رشته منبع).

A بدن احاطه شده توسط یک جفت بریس مجعد ({ و }).

بدنه های تابع ممکن است دارای تعاریف متغیر (به صورت اختیاری اولیه) باشند. متغیر
تعاریف با یک نام نوع شروع می شوند و به دنبال آن یک یا چند کاما از هم جدا می شوند (اختیاری
اولیه) شناسه های متغیر. اگر یک متغیر به طور صریح مقداردهی اولیه نشده باشد
به طور پیش فرض مقداردهی اولیه شده است. به طور پیش فرض an INT متغیر به 0، a مقداردهی اولیه می شود رشته is
مقدار دهی اولیه به یک رشته خالی ("") و یک فهرست به لیستی از عناصر صفر مقدار دهی اولیه می شود.

علاوه بر تعاریف متغیر، بدنه ها ممکن است حاوی صفر یا بیشتر باشند (ر.
بخش FLOW کنترل). توجه داشته باشید که متغیرها ممکن است تعریف شوند (و به صورت اختیاری مقداردهی اولیه شوند)
هر جایی در داخل توابع، و همچنین در اگر ، برای و در حین بیانیه.

رفتار icmakeاسکریپت هایی که از توابع غیر خالی استفاده می کنند و مقادیری را برمی گردانند نیست
تعریف شده است.

از icmake آنلاین با استفاده از خدمات onworks.net استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

دستورات لینوکس

Ad