---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 این تابع با مقادیر مختلف چندین بار صدا زده میشه و ساختن یک استراکچر به ازای هر صدا زدن بسیار مشکله
ایا روش دیگری وجود داره؟
ممنون
فرض کنیم بک 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 این تابع با مقادیر مختلف چندین بار صدا زده میشه و ساختن یک استراکچر به ازای هر صدا زدن بسیار مشکله
ایا روش دیگری وجود داره؟
ممنون