PDA

View Full Version : سوال درمورد استفاده از تابع با نوع برگشتی Structure در if



---z12
یک شنبه 25 اسفند 1392, 14:10 عصر
سلام
فرض کنیم بک Structure داریم مانند زیر:
struct myStruct
{ int x;
int y;
};

و یک تابع هم که به صورت زیر تعریف شده:
myStruct foo(int arg)
{myStruct output;
output.x = arg - 2;
output.y = 0;
return output;
}

حالا سوال من اینه که چطور می تونم از این تابع در یک شرط if استفاده کنم به طوری در شرط فقط فیلد X رو مورد بررسی قرار بدم. یعنی یه چیزی شبیه این:
if (foo(50).x == 48)
//do something

یک راهش اینه که در بیرون دستور if یک استراکچر بسازم و خروجی تابع foo رو در اون قرار بدم و بعد در if از اون استراکچر ساخته شده استفاده کنم. مشکل اینجاست که در برنامه ی اصلی در هر دستور if این تابع با مقادیر مختلف چندین بار صدا زده میشه و ساختن یک استراکچر به ازای هر صدا زدن بسیار مشکله

ایا روش دیگری وجود داره؟
ممنون

rahnema1
یک شنبه 25 اسفند 1392, 15:27 عصر
بله توی ++c این جوری میشه

struct myStruct
{
int x;
int y;
myStruct (int arg):x(arg-2),y(0)
{
//...
}
};
int main()
{
if (myStruct(50).x == 48)
{
//....
}
}