pirmard
Registered User
- تاریخ عضویت
- 21 آگوست 2007
- نوشتهها
- 841
- لایکها
- 5
سلام
اقا 1 روزه ما علافه 2 خط کد از یه برنامه شدیم !
جریان اینه که یه تابع داره این برنامه که پارامتر اختیاری می گیره . بعد حالا کامپایلر گیر داده به دیفاین تابع !
از طرف دیگه از این پارامترهای اختیاری هم نمیشه استفاده کرد .
ببینین ته تابع 3 تا نقطه گذاشته شده که یعنی بعدش بتونه پارامتر اختیاری بیاد . حالا اینجوری ایراد می گیره :
f
یعنی کامپایلر به خط 54 که میرسه به 3 نقطه و پرانتز گیر داده که یعنی نمی فهمه اونا چین :wacko:
حالا باز توی همین تابع خط بعدی اومده از __va_arg__ استفاده کنه . به اون هم گیر میده !!!!
خط بالا که ایراد نداره . اما کامپایلر میگه :
علت چیه ؟
با وجود اینکه کتابونه ی stdarg هم ادد شده اول برنامه .
کسی از اساتید می دونه چشه این ؟
compiler : visual c++ 6.0
اقا 1 روزه ما علافه 2 خط کد از یه برنامه شدیم !
جریان اینه که یه تابع داره این برنامه که پارامتر اختیاری می گیره . بعد حالا کامپایلر گیر داده به دیفاین تابع !
از طرف دیگه از این پارامترهای اختیاری هم نمیشه استفاده کرد .
#define myfunc(xxx, yyy, zzz, mmm , ...)
f
(54) : error C2010: '.' : unexpected in macro formal parameter list
(54) : error C2010: '.' : unexpected in macro formal parameter list
(54) : error C2010: '.' : unexpected in macro formal parameter list
(54) : error C2010: ')' : unexpected in macro formal parameter list
یعنی کامپایلر به خط 54 که میرسه به 3 نقطه و پرانتز گیر داده که یعنی نمی فهمه اونا چین :wacko:
حالا باز توی همین تابع خط بعدی اومده از __va_arg__ استفاده کنه . به اون هم گیر میده !!!!
res = newfunc(text, __VA_ARGS__)
خط بالا که ایراد نداره . اما کامپایلر میگه :
c(58) : error C2065: '__VA_ARGS__' : undeclared identifier
علت چیه ؟
با وجود اینکه کتابونه ی stdarg هم ادد شده اول برنامه .
کسی از اساتید می دونه چشه این ؟
compiler : visual c++ 6.0