#include <stdio.h>
#include <time.h>
#define timefnrt(W, X, Z){\
time_t V = time(NULL);\
W = X;\
time_t Y = time(NULL);\
Z = difftime(Y, V);\
};
class foo {
public :
int somefunc( int & x, int y) {
for ( int i = 0 ; i < x; i++ )
printf ( "Iteration %d\n " , i) ;
printf ( "Address of x within func is %p\n " , & x) ;
printf ( "Address of y within func is %p\n " , & y) ;
printf ( "Address of object within func is %p\n " , this ) ;
return y;
}
} ;
int main( ) {
foo f;
double ftime;
int retval;
int x = 2 ;
int y = 30 ;
printf ( "Address of x in main is %p\n " , & x) ;
printf ( "Address of y in main is %p\n " , & y) ;
printf ( "Address of object in main is %p\n " , & f) ;
printf ( "---\n " ) ;
timefnrt( retval, f.somefunc ( x, y) , ftime) ;
printf ( "Return value was %d, Time taken was %f seconds\n " , retval, ftime) ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx0aW1lLmg+CiNkZWZpbmUgdGltZWZucnQoVywgWCwgWil7XAoJdGltZV90IFYgPSB0aW1lKE5VTEwpO1wKCVcgPSBYO1wKCXRpbWVfdCBZID0gdGltZShOVUxMKTtcCglaID0gZGlmZnRpbWUoWSwgVik7XAp9OwpjbGFzcyBmb28gewpwdWJsaWM6CglpbnQgc29tZWZ1bmMoaW50JiB4LCBpbnQgeSkgewoJCWZvciAoaW50IGkgPSAwOyBpIDwgeDsgaSsrKQoJCQlwcmludGYoIkl0ZXJhdGlvbiAlZFxuIiwgaSk7CgkJcHJpbnRmKCJBZGRyZXNzIG9mIHggd2l0aGluIGZ1bmMgaXMgJXBcbiIsICZ4KTsKCQlwcmludGYoIkFkZHJlc3Mgb2YgeSB3aXRoaW4gZnVuYyBpcyAlcFxuIiwgJnkpOwoJCXByaW50ZigiQWRkcmVzcyBvZiBvYmplY3Qgd2l0aGluIGZ1bmMgaXMgJXBcbiIsIHRoaXMpOwoJCXJldHVybiB5OwoJfQp9OwppbnQgbWFpbigpIHsKCWZvbyBmOwoJZG91YmxlIGZ0aW1lOwoJaW50IHJldHZhbDsKCWludCB4ID0gMjsKCWludCB5ID0gMzA7CglwcmludGYoIkFkZHJlc3Mgb2YgeCBpbiBtYWluIGlzICVwXG4iLCAmeCk7CglwcmludGYoIkFkZHJlc3Mgb2YgeSBpbiBtYWluIGlzICVwXG4iLCAmeSk7CglwcmludGYoIkFkZHJlc3Mgb2Ygb2JqZWN0IGluIG1haW4gaXMgJXBcbiIsICZmKTsKCXByaW50ZigiLS0tXG4iKTsKCXRpbWVmbnJ0KHJldHZhbCwgZi5zb21lZnVuYyh4LCB5KSwgZnRpbWUpOwoJcHJpbnRmKCJSZXR1cm4gdmFsdWUgd2FzICVkLCBUaW1lIHRha2VuIHdhcyAlZiBzZWNvbmRzXG4iLCByZXR2YWwsIGZ0aW1lKTsKCQp9