نمایش نتایج 1 تا 6 از 6

نام تاپیک: مشکل در نوشتن هدر فایل

  1. #1

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

    سلام...

    تو هدر فایل یه شرط گذاشتم که اگه ارگومان بیشتر از 5 باشه برنامه رو کامپایل نکنه
    ولی چه ارگومان رو بیشتر از 5 و چه کمتر از 5 می زارم برنامه رو کامپایل نمی کنه!؟

    کد هر فایل:

    #include <iostream.h>
    #define MAX 5
    int item=0;

    #if MAX<item
    #error item is large.
    #endif

    void fitem(int it)
    {
    item=it;
    }

    void print()
    {
    cout<<item<<endl;
    }


    کد برنامه:

    #include <iostream.h>
    #include "test.h"
    int main()
    {
    clrscr();
    fitem(7);
    print();
    getch();
    return 0;
    }

  2. #2
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491

    نقل قول: مشکل در نوشتن هدر فایل

    item یک متغیر است و جزء مواردی نیست که در زمان compile بتوان از آن استفاده کرد.

  3. #3

    نقل قول: مشکل در نوشتن هدر فایل

    چطوری می تونم این مقدار رو کنترل کنم؟ شدنیه؟

    میشه کد رو اصلاح کنید.
    ممنون

  4. #4
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491

    نقل قول: مشکل در نوشتن هدر فایل

    شما نمی‌توانید توسط مقداردهی یک متغیر، از کامپایل شدن قطعه‌ای از کدها جلوگیری کنید.
    چون متغیر و مقادیر آنها مربوط به run-time و دستوراتی که با # آغاز می‌شوند، مربوط به compile-time هستند.
    همواره compile-time صورت می‌گیرد و وقتی که کاملا تمام شد، نوبت run-time است.
    اما شما می‌خواهید این پروسه را جابجا کنید و اول run-time انجام شود، سپس compile-time که کاملا با منطق این زبان در تضاد است.

    شما برای چه منظوری می‌خواستید این کار را انجام دهید؟ مطمئناً روش مناسبی برای هدف مورد نظر شما وجود دارد. اگر لازم است، بیشتر توضیح دهید.

  5. #5

    نقل قول: مشکل در نوشتن هدر فایل

    شما نمی‌توانید توسط مقداردهی یک متغیر، از کامپایل شدن قطعه‌ای از کدها جلوگیری کنید.
    درست، ولی تو یه هدر فایل دیدم که از تابع defined استفاده کرده بود که متغیر می گرفت.
    تو تعریف define# هم میشه متغیر داد بهش؛ یعنی:

    #include <iostream>
    #define PI 3.14
    #define s(r) (r * r * PI)
    int main()
    {
    float r;
    cin>>r;
    cout<<s(r);
    return 0;
    }


    شما برای چه منظوری می‌خواستید این کار را انجام دهید؟
    راستش کار خاصی نمی خوام انجام بدم! فقط #error رو دیدم، سوال برام پیش اومد که چطوری با یه شرط کنترلش کنم؟(تو چند تا کتاب هم نگاه کردم فقط گفته بود #error واسه چی استفاده می شه)

  6. #6
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491

    نقل قول: مشکل در نوشتن هدر فایل

    درست، ولی تو یه هدر فایل دیدم که از تابع defined استفاده کرده بود که متغیر می گرفت.
    در اینجا از define برای تعیین یک مقدار ثابت در compile-time استفاده می‌شود و نمی‌توان در زمان اجرای برنامه (run-time) مقدار آن را تغییر داد. آنها را همچون ثوابت در نظر بگیرید (هر چند که در هنگام کامپایل می‌توانید برای آنها مقدار تعیین کنید ولی در زمان اجرا (run-time) نمی‌شود).

قوانین ایجاد تاپیک در تالار

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