اطلاعیه

Collapse
No announcement yet.

معنی ... (سه نقطه) در C

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    معنی ... (سه نقطه) در C

    دوستان کسی میدونه معنی ... در C چیه؟
    مثلا:


    #define WITH_DESIRED_PROPERTY(type, name, ...) MODEL_DESIRED_PROPERTY(type, name, __VA_ARGS__)

    یا

    #define DROP_FIRST_COMMA_FROM_ARGS(...) \
    FOR_EACH_1_COUNTED(DROP_IF_EMPTY, C1(__VA_ARGS__))

    #2
    پاسخ : معنی ... (سه نقطه) در C

    نوشته اصلی توسط slh نمایش پست ها
    دوستان کسی میدونه معنی ... در C چیه؟
    مثلا:


    #define WITH_DESIRED_PROPERTY(type, name, ...) MODEL_DESIRED_PROPERTY(type, name, __VA_ARGS__)

    یا

    #define DROP_FIRST_COMMA_FROM_ARGS(...) \
    FOR_EACH_1_COUNTED(DROP_IF_EMPTY, C1(__VA_ARGS__))
    سلام
    فکر میکنم معنیش این باشه که تابع معرفی شده ممکنه تعداد متغیر بیشتری داشته باشه. برای مثال تابع sprintf حداقل دو متغیر داره؛ متغیر اول آدرس اولین خونه آرایه ای هستش که قراره رشته توش ریخته بشه رو میگریه، متغیر دوم هم همون رشته ای هستش که گفتم. منتهی ممکنه ما بخواییم که توی رشته چند متغیر عددی دیگه هم گنجونده بشه؛ اگر با این تابع کار کرده باشید میدونید که باید از علامت هایی مثل d% و f% استفاده کنیم و در ادامه باید این متغیر ها رو به ترتیب به تابع بدیم. از اونجایی که تعداد متغیرها در این حالت نا مشخص هستش، از همین سه نقطه استفاده میکنن.
    از اساتید میخوام اگر اشتباه گفتم اصلاح کنن.

    دیدگاه


      #3
      پاسخ : معنی ... (سه نقطه) در C

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

      دیدگاه


        #4
        پاسخ : معنی ... (سه نقطه) در C

        در تعریف توابعی که آرگومانهاش از قبل مشخص نیست مثل printf استفاده میشه. دراین توابع حداقل باید یک آرگومان از قبل مشخص باشه و معمولا تعداد پارامترهای ارسالی به تابع از همون پارامتر استخراج میشه درست مثل تابع printf که آرگومان اول یک رشته است و تعداد پارمترهای باقی مانده از فرمانهاییی مثل %d %f و .... مشخص میشه

        دیدگاه

        لطفا صبر کنید...
        X