Dal momento che si sta utilizzando C++, se si vuole xc
e yc
per cambiare, è possibile utilizzare i riferimenti:
void trans(double x, double y, double theta, double& m, double& n)
{
m=cos(theta)*x+sin(theta)*y;
n=-sin(theta)*x+cos(theta)*y;
}
int main()
{
// ...
// no special decoration required for xc and yc when using references
trans(center_x, center_y, angle, xc, yc);
// ...
}
Mentre se si sta utilizzando C, si dovrà passare puntatori espliciti o indirizzi, come ad come:
void trans(double x, double y, double theta, double* m, double* n)
{
*m=cos(theta)*x+sin(theta)*y;
*n=-sin(theta)*x+cos(theta)*y;
}
int main()
{
/* ... */
/* have to use an ampersand to explicitly pass address */
trans(center_x, center_y, angle, &xc, &yc);
/* ... */
}
mi sento di raccomandare check-out la C++ FAQ Lite's entry on references per qualche informazione in più su come utilizzare i riferimenti correttamente.
fonte
2009-11-09 01:30:35
domande correlate: http://stackoverflow.com/questions/410593/pass-by-reference-value-in-c, http://stackoverflow.com/questions/1322517/passing -a-modifiable-parameter-to-c-function – outis
chiedere richiesto ... domanda di lavoro! Utilizzare lo stack overflow per qualcosa di diverso da una chiave di risposta. – bobby